[따배도] 3-1.Container 알아보기 (이론)
( 참고 : 따배도 https://www.youtube.com/watch?v=NLUugLQ8unM&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi )
Contents
- Container? Container Image?
- Container 동작방식
- 용어 정리
Q1. Container? Container Image?
컨테이너는 일종의 “application”이다.
ex) 아래와 같이 세 개의 container가 있다.
- container 1 : nodejs기반의 web server
- container 2 : php기반의 application
- container 3 : (DB) MySQL
이 3개의 container는 완전히 독립되어 (isolated) 있다.
각각에 사용되는 독립적이다
-
cpu, memory와, user id, application 등등이 별개로 존재
-
서로 영향을 주지 않는다
Docker HOST :
- dockerd (도커 데몬)이 동작되고 있는 linux kernel이 있는 시스템
- 이 위에 각각의 container들이 독립적으로 작동한다
- 호스트 입장에서 container는 단순히 동작되는 process일 뿐이다.
-
Container Image는 하나의 application이 잘 작동하기 위해, 여러 개의 layer로 구성되어 있는 image들의 조합이다.
-
ex) 위의 사진 :
가장 밑에 있는 layer는 설비로써 base image, 두 번째 layer를 source image, 세 번쨰 layer에서는 application을 동작시킨다.
-
이를 시스템 상에서 저장할 때는 uuid로 저장한다.
Container vs Container Image
Container Image는 file 형태로 h.w.에 저장되어 있다. ( Read ONLY )
( 각각의 layer별로 따로따로 file이 존재한다 )
이러한 image를 process로 동작하게 되면 Container라고 부른다 ( Read & Write )
Q2. Container 동작방식
Hub ( Hub.docker.com )
- container (image) 보관 창고
- 10만여 개 이상의 container image들이 있다.
Docker HOST
-
docker demon이 Hub에 nginx가 있는지를 요청(검색)한다.
docker demon은 Hub에 nginx가 있는지를 확인한 뒤 list를 반환한다
- 만약 5개의 layer로 구성된 image라면, 5개의 별도의 file로 저장되어있다.
docker search nginx
-
존재할 경우, Hub에 저장된 해당 nginx container image를 받아온다
( 이렇게 받아온 container image은 아직 container는 아니다 )
docker pull nginx:latest
-
이 container image를 run한다. ( = 컨테이너 실행 )
docker run -d --name web -p 80:80 nginx:latest
- name 지정 : web
- port : 80:80
Q3. 용어 정리
Docker HOST ( Linux Kernel )
- 도커 데몬이 동작되고 있는 시스템
Docker Daemon
systemctl start docker
로써 실행시킨 도커
Docker Client Command
docker
Docker Hub
- 1) hub.docker.com에서 제공하는 image들
- 2) 회사 내의 docker hub에서 제공하는 image들
Container Images & Container
- 위에 참고