
✅프로그램과 프로세스#
- 프로그램은 정적인 파일(코드,데이터) 의 집합이며, 시스템의 디스크에만 공간을 차지함 template
- 이를 실행하면 프로세스가 되는데, 프로그램의 코드와 데이터가 메모리에 로드되고, CPU,RAM 등의 시스템 리소스를 사용하는 동적인 상태가 됨
이미지 💿#
- 프로그램과 대응
- 프로그램(들)과, 이를 실행시킬 수 있는 환경이 디스크 공간을 차지하는 상태
- 불변이며, 따로 자원을 소모하지 않는 상태
컨테이너🐋#
- 프로세스와 대응
- 실행 상태의 이미지로, 이미지를 복사해 격리된 공간을 생성하고 시스템 리소스를 사용
이미지의 구성#
이미지는 base image부터 레이어들을 쌓아올려서 생성됨
이때 이 레이어들은 불변 이며, 이전 레이어에서 변경된 사항임 (환경변수 등)
기본 nginx 이미지의 history#
❯ docker history nginx
IMAGE CREATED CREATED BY SIZE COMMENT
070027a3cbe0 5 weeks ago CMD ["nginx" "-g" "daemon off;"] 0B buildkit.dockerfile.v0
<missing> 5 weeks ago STOPSIGNAL SIGQUIT 0B buildkit.dockerfile.v0
.....nginx 설정파일을 추가해 이미지 생성#
❯ docker history mynginx:1.0.0
IMAGE CREATED CREATED BY SIZE COMMENT
02b2c4b62ed4 2 minutes ago COPY nginx.conf /etc/nginx/nginx.conf # buil… 242B buildkit.dockerfile.v0
<missing> 5 weeks ago CMD ["nginx" "-g" "daemon off;"] 0B buildkit.dockerfile.v0
<missing> 5 weeks ago STOPSIGNAL SIGQUIT 0B buildkit.dockerfile.v0컨테이너의 구성#
- 이미지에서 컨테이너가 실행될 때, 레이어들의 불변 이미지들 위에 새로운 쓰기가능한레이어가 추가됨!!
- 이 레이어에는 컨테이너에서 발생하는 모든 변경사항이 기록됨 => commit으로 새로운 이미지도 생성 가능
- 당연한 말이겠지만, 컨테이너가 삭제되면 쓰기 레이어도 삭제됨 => 이를 막기 위해 volume기능 제공
