1. 한 번 빌드하면 어디서나 실행할 수 있는 애플리케이션 배포 시스템
Docker만 있으면 언제 어디서나 애플리케이션을 실행할 수 있는 안전한 런타임 환경을 구성할 수 있다. 시스템에 따라 설치, 설정, 의존성 같은 반복 작업을 하지 않아도 애플리케이션을 빠르게 배포하는 것이 가능하다. 가상 머신이 시스템간 호환성, 이동성에 제약이 있다면 Docker는 그런 제약에서 자유롭다. 아마존 웹 서비스, 구글 클라우드 플랫폼, 마이크로소프트 애저 같은 플랫폼을 자유롭게 이동하고 배포할 수 있다.
2. 가상 머신의 부하 없이 즐기는 가상 환경
하이퍼바이저가 CPU, RAM, 스토리지 같은 하드웨어를 전부 추상화했다면, Docker는 운영체제 커널만 추상화했다. Docker는 운영체제를 공유하면서 애플리케이션에 필요한 가상화와 격리를 제공하기 때문에 가볍고 빠르다. 이미지 생성, 스냅샷 생성, 초기화도 Docker라면 빠르게 처리할 수 있다.
3. 개발자와 운영자를 위한 진정한 배포 시스템
런타임 환경을 한 번 만들고, 패키징만 하면 어떤 머신에서나 반복해서 실행할 수 있다. 가상 머신처럼 호스트와 격리된 환경에서 실행된다. 개발자는 코드 품질에 더 많은 시간을 집중할 수 있고, 운영자는 개별 서버를 일일이 관리하는 대신 배포 이미지 관리에 집중함으로써 시스템의 일관성을 높일 수 있다. Docker 기반 배포를 구현하면 개발, 테스트, 서비스 단계의 시스템 불일치나 호환성 문제를 줄이거나 제거할 수 있다.