Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼으로 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 것이 포함되어 있다.
-> 컨테이너는 애플리케이션을 환경에 구애받지 않고 실행하는 기술이다.
Docker를 사용하면 필요할 때마다 격리된 서비스를 제공할 수 있다.
컨테이너식 애플리케이션을 사용하면 쉽게 배포하고, 문제를 파악하고, 수정을 위해 롤백할 수 있다.
Docker 기반 애플리케이션을 로컬 개발 시스템에서 AWS의 프로덕션 배포로 원활하게 이전할 수 있다.
Docker 컨테이너를 사용하면 각 서버에서 쉽게 많은 코드를 실행하여 사용률을 높이고 비용을 절감할 수 있다.
도커 컨테이너는 무상태( Stateless )이며, 불변적( Immutable )이다.
컨테이너는 해당 콘텐츠를 담은 이미지로부터 시작되고 실행되는데, 이미지는 기본적으로 생성되면 변경되지 않는다. 하지만, 컨테이너 인스턴스는 일시적( Transient )이다.
인스턴스가 시스템 메모리로부터 제거되면 영원히 사라지게 되는데, 지속시키려면 지속성을 위한 추가 설계가 필요하다.