- 컨테이너를 기반의 가상화 플랫폼인 Docker의 기본 개념 중 내가 학습하고 정리한 것들이다.
01. Dockerfile
컨테이너 이미지를 어떻게 만들지 정의한 설명서(레시피). 빌드할 때만 사용한다.
- 어떤 환경에서 실행할지
- 어떤 라이브러리를 설치할지
- 어떤 포트를 열지
- 어떤 명령으로 실행할지
를 기술한 조립 법칙이다.
마치 요리 레시피와 같다!
02. Image (불변)
어플리케이션을 실행하는 데에 필요한 모든 환경을 스냅샷으로 찍어둔 패키지
- OS 레벨전체를 포함하지 않고 최소 실행 환경만 패키징 (가볍다!)
- 라이브러리, 실행파일, 런타임 환경 등 포함
- 그렇기 때문에 생성된 이미지는 변경되지 않는다.
마치 냉동실에 넣어놓은 냉동 도시락과도 같다.
03. Container (실행되는 프로세스)
이미지를 실제 격리된, 고립된 공간에서 실행한 프로세스
- 가상머신(VM)처럼 OS 전체를 복제하지 않는다.
- 필요한 어플리케이션 실행 환경만 격리
- 가볍고 빠르게 실행!
마치 냉동도시락을 전자레인지에 데워 실제로 먹는 상태와 같다.
04. 전체 실행 흐름

출처 : 드림코딩 (https://www.youtube.com/watch?v=LXJhA3VWXFA)
- 도커파일 작성
- image로 빌드
- 이 image를 Container Registry(이미지를 저장하고 관리하는 공간) 에 올림 (push)
- Server가 Registry에서 내려받음 (pull)
- docker run으로 Container 실행!