도커란?

컨테이너란, OS상에 애플리케이션이 작동하는데 필요한 요소들만을 모아 만들어진 논리적인 영역이다. 필요한 요소들만으로 구성되어있어서 오버헤드가 적고, 각 어플리케이션이 필요한 환경이 달라도 컨테이너끼리는 영향을 주지 않는다.

여기서 필요한 요소들이란, 커널의 일부분을 말함.

image.png

도커의 컨테이너 구조

도커 컨테이너는 컨테이너 레이어와 이미지 레이어로 구성되어있다.

image.png

컨테이너를 가동하기 위해서는 우선 이미지가 필요하고, 이 이미지는 읽기 전용의 이미지 레이어로 이루어져있다. 그 위에 있는 컨테이너 레이어는 읽기, 쓰기가 가능하다.

정리하자면

  1. 컨테이너 레이어는 읽기/쓰기 모두 가능한 계층으로 최상단 레이어에 있다. 컨테이너 실행, 진행, 변경사항은 모두 이 계층에 저장된다.
  2. 이미지 레이어는 읽기 전용 계층으로 다른 컨테이너와 공유할 수 있는 레이어이다.

image.png

이미지 레이어를 도입해서 VM과 다르게 리소스를 아낄 수 있다. 이미지 레이어는 컨테이너들이 공유하기 때문이다.

도커의 명령어 구조

도커의 모든 명령은 docker로 시작하고, 어떤 대상에게 어떤 명령어를 실행할 것인지의 구조를 갖는다.

docker [대상] [커맨드] [옵션] [인자]