본문 바로가기
Back-end/Docker

Docker : 도커란 무엇일까? [2/2]

by somlang_bba 2023. 4. 10.
728x90

 

도커의 작동방식 이해하기


도커는 컨테이너 기반의 가상화 도구이다. 리눅스 커널의 기술인 LXC(Linux Container) 기반으로 이루어진 기술로 다음의 리눅스 커널의 기능을 사용하여 만들어졌다.

 

- chroot: 파일 시스템을 격리

- namespace: 프로세스 격리

- cgroup: 하드웨어 자원 격리

 

그래서 보통 윈도우에서 도커를 사용하기 위해서는 WSL(Windows Subsystem for Linux)을 이용하여 윈도우에 리눅스를 올린 상태로 사용한다. 하지만 앞의 글에서 설명했던 Hyper-V 등을 이용하면 윈도우에 Hypervisor를 올려서 사용하는 것 또한 가능하다.

 

도커의 내부구조를 표현한 그림

Client

 - Daemon과 상호 작용할 수 있는 클라이언트 프로그램(CLI 명령어 등)

 

Daemon

 - Dockerd 라고도 불리는 도커 데몬은 클라이언트로 부터 오는 Docker API 요청 등을 listening하고 있는다. 그리고 요청에 따라 Docker object들(image, container, network, volumn 등)을 관리한다. 외부에서 이미지를 다운로드하고 빌드하는 작업도 수행한다. 그리고 다른 서비스를 관리중인 데몬들과도 의사소통을 하는 주체가 된다.

 

Docker Object - Images

 - 도커 컨테이너를 만들기 위한 읽기 전용 템플릿. 만들어져 있는 이미지를 다운로드하여 컨테이너를 생성. 환경정보를 스냅샷해서 저장해둔 것이라 보면 됨.

 

Docker Object - Container

 - 실행되고 있는 이미지이며 도커API나 CLI 등을 통해 컨테이너 단위로 create, start, stop, move, delete 등을 수행할 수 있다. 컨테이너는 기본적으로 호스트와 네트워크, 환경설정 등이 구분되어 있는 별도의 환경으로 구성된다. 따라서 볼륨 옵션이나 이미지로 저장하는 등 영구적인 저장소가 없으면 컨테이너가 제거 되면서 컨테이너의 상태는 사라진다.

 

Registries

 - 도커 레지스트리는 여러 도커 이미지를 저장한 저장소의 개념이다. 도커 API 혹은 CLI를 통해 pull 혹은 run 명령어 입력하면 daemon은 registry와 상호작용하며 이미지를 가져오거나 push 명령어를 통해 daemon이 레지스트리에 이미지를 업로드한다. 대표적인 퍼블릭 저장소로는 Docker Hub가 있으며 개인적인 프라이빗 저장소도 생성할 수 있다.

 

 

출처 1:  Professional IT Hunters: 4. Docker Architecture (Docker vs Virtualization) (linuxvmaws.blogspot.com)

 

4. Docker Architecture (Docker vs Virtualization)

Linux commands, Virtualization , Vmware , Amazon web services , AWS, Docker , DevOps Basics...

linuxvmaws.blogspot.com

출처 2: 원티드 프리온보딩 백엔드 강의

728x90

'Back-end > Docker' 카테고리의 다른 글

Docker : 도커란 무엇일까? [1/2]  (0) 2023.04.07
Docker : cli를 통한 컨테이너 생성  (0) 2023.01.19
Docker : 컨테이너 관리  (0) 2023.01.19