컨테이너는 애플리케이션이 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고, 도커라는 기술 위에 실행될 수 있도록 만든 애플리케이션 상자입니다. 소프트웨어 서비스를 실행하는데 필요한 특정한 버전의 언어와 라이브러리 같은 것들을 과 애플리케이션 코드를 포함한 경량 패키지입니다.
실행되는 모든 컨테이너는 이미지로부터 생성되고, 이미지는 애플리케이션 및 애플리케이션 구성을 함께 담아놓은 템플릿으로, 이를 이용해 즉시 컨테이너를 만들 수 있습니다.
이미지를 이용해 여러 개의 컨테이너를 생성할 수 있고, 애플리케이션의 수평 확장이 가능합니다.
이미지는 기본 이미지로부터 변경 사항을 추가/커밋해서 또 다른 이미지를 만들 수도 있습니다. 예를 들어 node.js로 작성된 애플리케이션을 이미지로 만들고 싶은 경우, nodejs 이미지를 기본 이미지로 삼고 내가 만든 애플리케이션을 추가해 넣고, 이미지화할 수 있습니다.
Node.js 웹 앱의 도커라이징
https://nodejs.org/ko/docs/guides/nodejs-docker-webapp/
이미지는 레지스트리에 저장됩니다. 대표적인 이미지 레지스트리로는 Docker Hub, Amazon ECR이 있습니다. 도커 CLI에서 이미지를 이용해 컨테이너를 생성할 때, 호스트 컴퓨터에 이미지가 존재하지 않는다면, 기본 레지스트리로부터 다운로드 받게 됩니다.