개발, 설치, 앱 실행 과정들을 위한 오픈소스 플랫폼
내 앱을 인프라와 분리시킴으로써 소프트웨어 개발을 더 수월하게 해줌 다른 사람들과 내 개발 환경을 동일하게 만들어줌으로써 인프라를 알아서 관리할 수 있게 해줌
Container라고 불리는 **느슨하게 독립된 환경(loosely isolated environment)**에서 앱을 실행하고 패키지하는 능력을 제공. 독립성과 보완성은, 호스트에게 동시에 많은 컨테이너들을 실행할 수 있도록 해줌. 컨테이너는 가볍고 앱을 실행하기 위한 것들을 포함 → 호스트가 무엇을 설치했는지에 대해 의존할 필요X. 모든 사람들이 내가 일하는 환경과 동일한 환경에서 실행할 수 있음
도커는 컨테이너의 생애주기(lifecycle)를 관리하기 위한 플랫픔과 도구들을 제공
도커는 앱과 서비스에 제공하는 로컬 컨테이너를 사용해 표준화된 환경 내에서 개발자들이 일 할 수 있게끔 개발 lifecycle을 간소화할 수 있음. 컨테이너들은 CI/CD workflow에 좋음
다음과 같은 상황들:
도커의 컨테이너 기반 플랫폼은, 높은 휴대성을 지닌 workflow를 가능하게끔 해줌. 도커 컨테이너는 개발자 로컬 컴퓨터, 데이터 센터 내 머신들(physical or virtual), 클라우드 환경 모두에서 실행 가능
도커의 휴대성과 가벼움은 동적으로 workload를 관리하고, 앱을 요구에 맞춰 실시간으로 scale-up, tear down할 수 있게끔 해줌