Oh My Algorithm
Concept GuideClient · Daemon · Registry

도커 아키텍처 (Docker Architecture)

docker 명령을 치면 그 프로그램이 컨테이너를 만드는 게 아닙니다. 도커는 명령을 보내는 Client, 실제로 이미지와 컨테이너를 다루는 Docker Host 의 데몬(dockerd), 이미지를 보관하는 Registry 로 나뉘고, 셋은 REST API 로 대화합니다. pull 은 데몬이 레지스트리에서 이미지를 받아 호스트에 저장하는 일이고, run 은 그 이미지를 복사해 실행 인스턴스를 만드는 일입니다.

01도커 아키텍처 (Docker Architecture)

도커는 하나의 프로그램이 아닙니다. 명령을 치는 Client, 실제로 일하는 Docker Host, 이미지를 보관하는 Registry 세 부분으로 나뉩니다. Registry 는 대개 네트워크 건너편에 있습니다.

터미널에 치는 docker 명령은 전부 Client 입니다. 직접 컨테이너를 만들지 않고 데몬(dockerd)에 REST API 로 요청을 보낼 뿐입니다. 이미지·컨테이너를 실제로 만드는 것은 전부 데몬 쪽입니다.

docker pull 을 치면 데몬이 Registry 에 이미지를 요청합니다. Client 는 레지스트리와 직접 대화하지 않습니다 — 네트워크를 건너는 것은 데몬입니다.

받아온 이미지는 Docker Host 에 저장됩니다. 이제 인터넷 없이도 이 이미지로 컨테이너를 띄울 수 있습니다.

docker run 은 이미지를 복사해 실행 인스턴스로 만듭니다. 이미지는 읽기 전용 원본이고 컨테이너는 그것을 실행한 결과라, 같은 이미지로 컨테이너를 여러 개 띄울 수 있습니다.

docker build 는 반대 방향입니다. Dockerfile 을 데몬에 보내면 데몬이 이미지를 만들어 Docker Host 에 넣습니다.

ClientDocker HostRegistry
1 / 6

정리

Client 는 요청만 하고, 데몬이 전부 실행하며, Registry 는 네트워크 건너편의 이미지 창고입니다. docker 명령이 안 될 때 데몬부터 확인해야 하는 이유가 여기 있습니다.

docker info          # 데몬이 살아 있는지
docker context ls    # 지금 어느 호스트를 보고 있는지
docker image ls      # 호스트에 어떤 이미지가 있는지
이어서 읽기이미지 레이어 →

02 쉽게 이해하기

For Everyone
🔑핵심 동작

도커는 명령을 보내는 Client, 이미지를 만들고 컨테이너를 띄우는 데몬, 이미지를 보관하는 Registry 셋으로 나뉩니다. Client 는 레지스트리와 직접 통신하지 않고 데몬에게만 요청합니다.

💡쉽게 말하면

터미널의 docker 는 요청을 만들어 데몬에 보내는 클라이언트입니다.

데몬이 이미지·컨테이너·네트워크·볼륨을 실제로 관리하므로, 데몬이 떠 있지 않으면 어떤 명령도 동작하지 않습니다.

이미지는 읽기 전용 원본이고 컨테이너는 그것을 실행한 인스턴스라, 같은 이미지 하나로 컨테이너를 여러 개 띄울 수 있습니다.

클라이언트와 데몬은 같은 기계에 있을 수도, 원격으로 떨어져 있을 수도 있습니다.

📍어디에 쓰나
  • docker 명령이 안 될 때 데몬 상태부터 확인하기
  • 원격 호스트에 붙여 쓰기
  • 이미지와 컨테이너의 차이 구분하기
  • 사설 레지스트리 도입 판단

03 자주 묻는 질문

FAQ
도커 아키텍처 (Docker Architecture)란 무엇인가요?+

docker 명령을 치면 그 프로그램이 컨테이너를 만드는 게 아닙니다. 도커는 명령을 보내는 Client, 실제로 이미지와 컨테이너를 다루는 Docker Host 의 데몬(dockerd), 이미지를 보관하는 Registry 로 나뉘고, 셋은 REST API 로 대화합니다. pull 은 데몬이 레지스트리에서 이미지를 받아 호스트에 저장하는 일이고, run 은 그 이미지를 복사해 실행 인스턴스를 만드는 일입니다.

도커 아키텍처 (Docker Architecture)은(는) 어디에 사용하나요?+

docker 명령이 안 될 때 데몬 상태부터 확인하기, 원격 호스트에 붙여 쓰기, 이미지와 컨테이너의 차이 구분하기, 사설 레지스트리 도입 판단

도커 아키텍처 (Docker Architecture)를 쉽게 비유하면?+

도커는 명령을 보내는 Client, 이미지를 만들고 컨테이너를 띄우는 데몬, 이미지를 보관하는 Registry 셋으로 나뉩니다. Client 는 레지스트리와 직접 통신하지 않고 데몬에게만 요청합니다.