Server는 도커 오브젝트를 처리하고 생성하고 제거한다.
REST API는 우리가 평소에 알고 있는 그 API..
CLI는 도커 데몬과 함께 CLI 시스템으로 관리한다.
도커 이미지는 읽기 전용 파일로, 컨테이너를 실행하거나 컨테이너를 생성할 때 명령체계를 제공하는데 사용된다.
도커 이미지는 단일 이미지로써 여러 개의 레이어로 결합된 유니온 파일 시스템이다. 각 브랜치마다 파일과 분리된 파일시스템 디렉토리를 허용한다.
새 이미지로 업데이트했을 때, 새로운 레이어를 추가하고 기존 레이어를 교체한다.
CGROUPS와 Namespace에서 isoltaion이 발생한다. Namespace는 각 네임스페이스별로 분리하고, Image는 tar파일로 구성되어있으며 레지스트리에 저장할 수 있다.
컨테이너는 이미지의 실행가능한 인스턴스형태이다. Docker API나 CLI를 통해 실행시키거나 정지시키거나, 삭제 등을 할 수 있다. 컨테이너가 돌아가기 위해 필요한 모든 것들을 갖고 있는 상태인 파일시스템 소프트웨어로 감싸져 있다.
도커 컨테이너 구조
도커 허브는 이미지의 라이브러리이다.
레지스트리는 public 혹은 private으로 관리할 수 있다. 또한 같은 도커 데몬의 서버나 클라이언트, 아니면 분리된 서버에서 사용할 수 있다.
Container top layer와 image layer가 서로 마운트되어있는 상태고, top layer만 보여준다. 기존의 파일을 수정하고 싶다면, top layer로 복사하고 수정한다.
분리된 컨테이너의 프로세스를 구분하기 위해, 트리 안에 PID를 하나 더 덧붙인다. 이를 multiple nested process tree라고 한다. -> Isolation 역할
Cgroup : 리소스 관리를 하는데, 네임스페이스를 통해 분리하고 있다(추후 더 알아봐야함)