Docker 데몬 구성 개요
Docker 데몬 구성 개요 (Docker daemon configuration overview)
이 페이지는 Docker 데몬인 dockerd를 사용자 지정하는 방법을 보여줘요.
Note 이 페이지는 Docker Engine을 수동으로 설치한 사용자를 위한 거예요. Docker Desktop을 사용한다면 settings 페이지를 참고하세요.
출처: 문서
본문
Docker 데몬 구성 (Configure the Docker daemon)
Docker 데몬을 구성하는 두 가지 방법이 있어요:
- JSON 구성 파일 사용. 모든 구성을 한 곳에 보관하므로 선호되는 옵션이에요.
dockerd를 시작할 때 플래그 사용.
같은 옵션을 플래그와 JSON 파일 둘 다로 지정하지 않는 한 이 두 가지 옵션을 함께 사용할 수 있어요. 그렇게 되면 Docker 데몬이 시작되지 않고 오류 메시지를 출력해요.
구성 파일 (Configuration file)
다음 표는 시스템과 데몬 실행 방식에 따라 Docker 데몬이 기본적으로 구성 파일을 찾을 것으로 기대하는 위치를 보여줘요.
| OS and configuration | File location |
|---|---|
| Linux, regular setup | /etc/docker/daemon.json |
| Linux, rootless mode | ~/.config/docker/daemon.json |
| Windows | C:\ProgramData\docker\config\daemon.json |
rootless 모드에서 데몬은 XDG_CONFIG_HOME 변수를 존중해요. 설정되어 있으면 기대되는 파일 위치는 $XDG_CONFIG_HOME/docker/daemon.json이에요.
시작 시 dockerd --config-file 플래그를 사용해 구성 파일의 위치를 명시적으로 지정할 수도 있어요.
사용 가능한 구성 옵션은 dockerd 레퍼런스 문서에서 알아보세요.
플래그로 구성 (Configuration using flags)
Docker 데몬을 수동으로 시작하고 플래그로 구성할 수도 있어요. 문제 해결에 유용할 수 있어요.
다음은 이전 JSON 구성과 같은 구성을 사용해 Docker 데몬을 수동으로 시작하는 예시예요:
$ dockerd --debug \
--tls=true \
--tlscert=/var/docker/server.pem \
--tlskey=/var/docker/serverkey.pem \
--host tcp://192.168.59.3:2376
Windows에서 Unix 소켓 수신 (Listen on a Unix socket on Windows)
Docker Engine 29.5부터 Windows에서 dockerd가 Unix 소켓에서 수신하도록 구성할 수 있어요. 이 설정은 선택 사항이에요. 기본 Windows 엔드포인트는 npipe 명명된 파이프로 유지돼요.
승격된(관리자) PowerShell 세션에서 dockerd를 실행해요:
PS C:\> dockerd -H unix://C:/Users/<USER>/docker.sock --group docker-users
<USER>를 Windows 사용자 프로필 디렉토리 이름으로 바꿔요. --group이 없으면 Administrators 그룹과 SYSTEM 계정의 구성원만 소켓에 접근할 수 있어요. 쉼표 구분 목록을 사용해 여러 사용자나 그룹에 접근 권한을 부여해요.
--group으로 접근 권한을 부여할 때는 사용자 프로필 내의 경로를 사용해요. C:\ 바로 아래에 만들어진 소켓은 구성된 사용자와 그룹의 접근을 차단하는 높은 무결성 수준을 상속할 수 있어요.
Docker 클라이언트가 같은 소켓을 사용하도록 구성해요:
PS C:\> docker -H unix://C:/Users/<USER>/docker.sock info
사용 가능한 구성 옵션은 dockerd 레퍼런스 문서에서, 또는 다음 실행으로 알아보세요:
$ dockerd --help
데몬 데이터 디렉토리 (Daemon data directory)
Docker 데몬은 모든 데이터를 단일 디렉토리에 유지해요. 이 디렉토리는 컨테이너, 이미지, 볼륨, 서비스 정의, 시크릿을 포함한 Docker 관련 모든 것을 추적해요.
기본적으로 데몬은 다음에 데이터를 저장해요:
- Linux의
/var/lib/docker - Windows의
C:\ProgramData\docker
containerd image store를 사용할 때(Docker Engine 29.0 이상의 새 설치 기본값), 이미지 내용과 컨테이너 스냅샷은 /var/lib/containerd에 저장돼요. 다른 데몬 데이터(볼륨, configs)는 /var/lib/docker에 남아요.
overlay2 같은 클래식 스토리지 드라이버(업그레이드 설치의 기본값)를 사용할 때 모든 데이터는 /var/lib/docker에 저장돼요.
데이터 디렉토리 위치 구성 (Configure the data directory location)
data-root 구성 옵션을 사용해 Docker 데몬이 다른 스토리지 디렉토리를 사용하도록 구성할 수 있어요.
{
"data-root": "/mnt/docker-data"
}
data-root 옵션은 containerd image store를 사용할 때 /var/lib/containerd에 저장된 이미지와 컨테이너 데이터에는 영향을 주지 않아요. containerd 스냅샷터의 스토리지 위치를 바꾸려면 시스템 containerd 구성 파일을 사용해요:
/etc/containerd/config.toml
version = 2
root = "/mnt/containerd-data"
각 데몬에 전용 디렉토리를 사용해야 해요. 두 데몬이 같은 디렉토리(예: NFS 공유)를 공유하면 문제 해결이 어려운 오류가 발생해요.
다음 단계 (Next steps)
많은 특정 구성 옵션이 Docker 문서 전반에 걸쳐 논의돼요. 다음으로 가볼 만한 곳은: