[도커 기초 시리즈 포스팅]
[Docker] 기초 시리즈 (1) 도커의 개념과 사용이유
[Docker] 기초 시리즈 (2) Ubuntu에 도커 엔진 설치
[Docker] 기초 시리즈 (3) 이미지와 컨테이너 관계, 도커 아키텍처 (Now)
[Docker] 기초 시리즈 (4) 도커 이미지의 구조
[Docker] 기초 시리즈 (5) 도커 이미지 다루기 - Docker Hub(Registry)
[Docker] 기초 시리즈 (6) 도커 이미지 다루기 - 이미지 직접 생성
[Docker] 기초 시리즈 (7) 자주 사용하는 Dockerfile 명령어
[Docker] 기초 시리즈 (8) 자주 사용하는 도커 명령어 모음
[Docker] 기초 시리즈 (9) 도커 컨테이너 - 개념, 기본 사용법
[Docker] 기초 시리즈 (10) 도커 컨테이너 - Volume 관리
❑ 도커 이미지와 컨테이너의 관계
1) 도커 사용의 최종 목적은 컨테이너 생성이다
- 도커의 다양한 명령어, 옵션을 사용해서 최종적으로 달성하고자 하는 것은 하나의 프로세스가 동작하는 '컨테이너'를 생성하는 것이다.
2) 컨테이너는 이미지를 이용해 생성한다
- 컨테이너는 이미지를 이용해 생성할 수 있다. 즉, 하나의 이미지로 여러 개의 컨테이너를 생성할 수 있으므로 1:N 관계다.
- 이미지와 컨테이너는 객체지향에서 클래스와 인스턴스 관계와 같다. 이미지는 컨테이너를 생성할 수 있는 명세서 또는 레시피로 이해할 수 있고, 컨테이너는 그 레시피를 이용해 생성한 객체인 것이다.
❑ 도커 아키텍처
도커 사용의 최종 목적은 '컨테이너 생성'임을 상기하며 아키텍처의 그림에서 Clinet부터 화살표의 흐름대로 살펴본다
1) Client
- 도커 클라이언트는 사용자와 도커가 소통할 수 있는 기본 창구다. 즉 Windows의 명령 프롬프트, Mac의 터미널과 같은 것이다.
- 사용자는 도커 클라이언트를 통해 docker run과 같은 도커 명령어를 전달하고, 전달 받은 도커 데몬(Dockerd)은 이를 수행한 뒤 도커 클라이언트에게 반환한다.
- 도커 클라이언트와 도커 데몬은 /var/run/docker.sock(소켓)에 위치한 유닉스 소켓을 통해 통신하며, API를 사용하여 명령어를 전달한다
2) DOCKER_HOST
- 도커가 설치된 OS를 도커 호스트라고 한다.
- 도커 호스트 내에는 도커 엔진이 설치되어 컨테이너의 Life Cycle, 이미지 관리, 데이터 저장을 위한 볼륨 관리, 네트워크 관리 등을 한다.
3) Docker daemon
- 도커 엔진의 한 모듈로서 사용자가 입력하는 도커 명령어를 전달 받아 컨테이너, 이미지 등 도커 객체를 생성하고 관리한다.
- 도커 데몬은 명령어에 해당하는 작업을 수행한 뒤 결과를 도커 클라이언트에 반환한다
4-1) Images
- 컨테이너를 생성하기 위해 도커 호스트에 저장된 이미지들의 집합이다.
- 이미지에는 프로세스를 실행시키는데 필요한 어플리케이션 코드, 설정 파일, 데이터 등이 담겨있다.
- 사용자는 도커 클라이언트를 통해 이미지를 사용해 컨테이너를 생성하도록 지시할 수 있다.
4-2) Registry
- 컨테이너를 생성하기 위한 외부 이미지 저장소다.
- Public Registry로 가장 대표적인 Docker Hub가 있고 보안상 이유로 Private Registry를 운영하기도 한다. 대표적인 Private Registry는 AWS ECR, docker registry(오픈 소스)가 있다.
5) Container
- 이미지를 이용해 생성한 컨테이너다
- 사용자는 도커 클라이언트를 통해 이미지를 사용해 컨테이너를 생성하도록 지시할 수 있다.
'DevOps > Docker' 카테고리의 다른 글
[Docker] 기초 시리즈 (6) 도커 이미지 다루기 - 이미지 직접 생성 (0) | 2022.04.30 |
---|---|
[Docker] 기초 시리즈 (2) Ubuntu에 도커 엔진 설치 (0) | 2022.04.30 |
[Docker] 기초 시리즈 (4) 도커 이미지의 구조 (0) | 2022.04.29 |
[Docker] 가상화의 등장 배경과 VM(Virtual Machine) (0) | 2021.12.28 |
[Docker] 기초 시리즈 (1) 도커의 개념과 사용이유 (0) | 2021.12.15 |