Docker architecture
✒️ 2025-07-25 16:11 내용 수정
Docker architecture
- 공식 문서 : dockerdocs What is docker
- Docker는 클라이언트-서버 구조를 사용한다.
- Docker client와 Docker deamon은 같은 시스템에서 사용하거나, 원격 Docker deamon과 Docker client를 연결해서 사용할 수 있다.
- Docker client와 Docker deamon은 UNIX 소켓이나 네트워크 인터페이스를 통해 REST API로 명령어를 주고 받는다.
구성 요소
1. Docker client
- Docker 사용자가 Docker와 가장 먼저 상호작용하는 곳이다.
- 사용자가 명령어(
docker run,docker build,docker pull)를 사용하면 Docker client는 Docker deamon(dockerd)에 명령어를 전달한다.
2. Docker deamon(dockerd)
- Docker API 요청을 받아들여 이미지, Container, 네트워크, 용량 등의 Docker object를 관리한다.
- Docker deamon는 다른 docker deamon과도 상호작용할 수 있다.
3. Docker registry
-
Docker 이미지를 저장하는 곳이다.
-
Docker Hub은 누구나 사용 가능한 공용 registry이고, Docker는 이미지를 찾을 때 기본 설정으로 Docker Hub에서 이미지를 찾는다.
-
사용자 설정에 따라 private registry를 운영할 수 있다.
-
docker pull이나docker run명령어를 사용하면, Docker는 식별된 registry에서 요청 받은 이미지를 가져온다. -
docker push명령어를 사용하면 Docker 이미지를 식별된 registry에 넣는다. -
사진 자료 : https://docs.docker.com/guides/docker-overview/#docker-architecture

Docker Object
- 참고 자료 : dockerdocs Docker objects
- Docker를 사용하면 이미지, Container, 네트워크, 볼륨, 플로그인, 기타 object를 생성하고 사용한다.
1. Docker image
- Docker container를 생성하는데 필요한 지침이 있는 읽기 전용 템플릿이다.
- 추가 설정에 따라 다른 이미지를 기반으로 이미지를 생성할 수 있다.
- Dockerfile을 생성하면 이미지를 만들 수 있다.
- 참고 자료 : Dockerfile reference
- Dockerfile에 있는 각각의 지침은 이미지에 계층을 생성하며, Dockerfile을 변경하고 이미지를 다시 빌드할 때 수정된 계층들만 다시 빌드된다.
- 이런 특징 때문에 이미지는 다른 가상화 기술보다 가볍고, 작고, 빠르다.
2. Docker container
- 실행 가능한 Docker image 인스턴스다.
- Docker API나 CLI를 통해 container를 생성, 시작, 정지, 이동, 삭제할 수 있다.
- 하나의 container를 1개 혹은 여러 개의 네트워크와 연결시킬 수 있고, 저장소에 연결하거나, 현재 상태를 기반으로 새로운 이미지를 생성할 수 있다.