[따배도] 3-1.Container 알아보기 (이론)

( 참고 : 따배도 https://www.youtube.com/watch?v=NLUugLQ8unM&list=PLApuRlvrZKogb78kKq1wRvrjg1VMwYrvi )


Contents

  1. Container? Container Image?
  2. Container 동작방식
  3. 용어 정리


Q1. Container? Container Image?

컨테이너는 일종의 “application”이다.

figure2

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일 뿐이다.


figure2

  • Container Image는 하나의 application이 잘 작동하기 위해, 여러 개의 layer로 구성되어 있는 image들의 조합이다.

  • ex) 위의 사진 :

    가장 밑에 있는 layer는 설비로써 base image, 두 번째 layer를 source image, 세 번쨰 layer에서는 application을 동작시킨다.

  • 이를 시스템 상에서 저장할 때는 uuid로 저장한다.


Container vs Container Image

figure2

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

figure2


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

  • 위에 참고