[CKS] Docker Service Configuration
Docker 데몬을 Unix 소켓 또는 TCP를 통해 설정하는 방법을 다룹니다. 로컬 통신부터 TLS 암호화를 적용한 원격 접근 보안까지 단계별로 설명합니다.
개요
CKS 시험 만료가 얼마 남지않아 다시 시작하고 있습니다.
Certified Kubernetes Security Specialist (CKS) | KodeKloud
Docker Daemon 서비스 구성 방법
Docker 서비스 실행 상태를 확인합니다.
systemctl start docker
systemctl status docker
systemctl stop docker
포그라운드에서 실행
디버그를 위해 Docker 데몬을 포그라운드에서 실행할 수 있습니다.
dockerd --debug # 자세한 로그 확인을 위해 --debug 사용
Docker CLI와 Unix 소켓 통신
Docker 데몬이 시작되면 내부 Unix 소켓에서 수신을 대기합니다.
/var/run/docker.sock. 프로세스 간 통신(IPC) 메커니즘을 통해 Docker CLI가 데몬과 상호 작용함.- Unix 소켓 → 같은 컴퓨터 내 프로그램끼리 통신 (로컬 전용)
원격 호스트에서 Docker를 관리해야하는 경우 Docker 데몬은 인터넷 네트워크를 위해 TCP 인터페이스에서 수신 대기 설정을 해야합니다.
dockerd --debug \
--host=tcp://192.168.1.10:2375 # Docker 데몬이 돌아가는 서버 자신의 IP
접근하고자 하는 로컬 컴퓨터에서 DOCKER_HOST 로 원격지의 IP, PORT를 등록합니다.
export DOCKER_HOST="tcp://192.168.1.10:2375"
docker ps
하지만 암호화, 인증 없는 TCP 접근은 악의적인 목적으로 호스트에서 컨테이너를 실행할 수 있습니다.
TLS 활성화
TLS 암호화 포트는 2376 이며 암호화 없는 포트는 2375입니다
--tls=true
--tlscert=/var/docker/server.pem
--tlskey=/var/docker/serverkey.pem
dockerd --debug \
--host=tcp://192.168.1.10:2376 \
--tls=true \
--tlscert=/var/docker/server.pem \
--tlskey=/var/docker/serverkey.pem
/etc/docker/daemon.json 파일에서도 설정 가능합니다.
{
"debug": true,
"hosts": ["tcp://192.168.1.10:2376"],
"tls": true,
"tlscert": "/var/docker/server.pem",
"tlskey": "/var/docker/serverkey.pem"
}