본문 바로가기
Docker

[Docker] dockerd / docker.socket

by dbs_ 2025. 6. 15.

 

도커를 사용하면서 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가 켜지게 할 수도 있다.