
도커를 사용하면서 dockerd 혹은 docker.socket 이 두 가지 개념이 로그에서 보일 때가 있었는데, 명확하게 이해하지 못해서 이번에 이렇게 정리하며 파악해 보았다.
dockerd란?
- dockerd(Docker Daemon)
- 도커를 실제로 동작시키는 핵심 백그라운드 프로세스
- 쉽게 말하면, 우리가 내리는 Docker 명령어들을 처리해 주는 ‘서버’ 역할을 한다.
- 예를 들어 docker run, docker build 같은 명령어를 CLI에서 입력하면, 이 명령어는 dockerd에게 요청을 보냄.
- dockerd는 요청을 받아서 실제로 컨테이너를 실행하거나 이미지를 빌드함.
- 즉, 도커의 실질적인 기능은 dockerd가 전담한다고 보면 된다.
docker.socket이란?
- 시스템에서 특정 요청이 들어올 때 dockerd를 대신 실행시켜 주는 역할 = 일종의 트리거
- systemd 기반 시스템에서 도커 데몬(dockerd)을 소켓 활성화 방식으로 관리하는 유닉스 도메인 소켓 단위
- dockerd가 실행 중이 아닐 때, 누군가 docker ps 같은 명령어를 입력하면?
- → docker.socket이 감지해서 dockerd를 대신 자동으로 실행시킴.
즉, dockerd는 도커 명령을 실제로 처리하는 백그라운드 데몬, docker.socket은 dockerd가 꺼져 있어도 요청을 감지해서 대신 실행시켜 주는 유닉스 소켓이다.
언제 둘 중 무엇을 쓰면 될까?
- 운영 환경에서는 dockerd를 항상 실행시키는 게 일반적이다. 컨테이너가 실시간으로 동작해야 하므로 항상 켜져 있어야 함.
- 리소스를 아끼고 싶은 테스트 환경이나 개발환경에서는 docker.socket만 켜두고, 필요할 때만 자동으로 dockerd가 켜지게 할 수도 있다.
'Docker' 카테고리의 다른 글
| [Docker] Docker Compose -p 옵션 (0) | 2025.06.18 |
|---|---|
| [Docker] Docker Compose - 예제 (도커 강의 정리 #6) (0) | 2025.05.16 |
| [Docker] Docker Compose (도커 강의 정리 #5) (0) | 2025.05.08 |
| [Docker] Dockerfile (도커 강의 정리 #4) (0) | 2025.04.30 |
| [Docker] Docker Volume (도커 강의 정리 #3) (0) | 2025.04.23 |