Skip to main content

도커 이미지,컨테이너 기본개념

·207 words·1 min· loading
Table of Contents

✅프로그램과 프로세스
#

  • 프로그램은 정적인 파일(코드,데이터) 의 집합이며, 시스템의 디스크에만 공간을 차지함 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기능 제공