🐳
Docker Root Directory 변경

· January 20, 2025 · 3 min read


☀️ 테스트 환경

  • Amazon Linux 2023 (EC2)
  • Docker 20.10.25

✋ 들어가며

운영중인 시스템에서 Docker Root Directory를 변경해야하는 일이 생겨버렸다. 기본 설정의 Root Directory가 루트(/) 볼륨에 잡혀있어서 내부 정책상 다른 볼륨으로 옮겨가야했다.

💾 신규 디렉토리로 데이터 복사

기존 디렉토리 확인

도커 명령어를 이용해서 기존 디렉토리가 어디로 잡혀있는지 확인해보자. 필자의 경우 별도의 설정이 없었기에 기본 경로로 설정되어 있다.

docker info
...
Docker Root Dir: /var/lib/docker
...

신규 디렉토리 생성

Docker Root Directory로 사용할 신규 디렉토리를 생성해주자. 예제에서는 루트 볼륨과 분리되어있는 별도의 볼륨(/data)으로 진행했다.

cd /data
mkdir docker

데이터 복사

운영중인 시스템이기 때문에 기존에 사용하던 디렉토리를 신규 디렉토리로 옮겨야했다.

cp -a /var/lib/docker/* /data/docker

🐳 data-root 설정

첫번째 방법

daemon.json 파일을 수정한다. (없으면 당황하지 말고 생성해주자)

sudo /etc/docker/daemon.json
{
    "data-root": "/data/docker/",
    ...
}

두번째 방법

docker.service 에서 ExecStart를 찾아서 --data-root를 추가한다.

sudo vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --data-root /data/docker -H fd:// ...

🔄 재시작

재시작은 언제나 제일 무서운 타이밍이 아닐까

서비스 재시작

sudo systemctl stop docker
sudo systemctl daemon-reload # docker.service를 수정한 경우에만
sudo systemctl start docker

or

sudo systemctl daemon-reload # docker.service를 수정한 경우에만
sudo systemctl restart docker

컨테이너 재시작

구동중인 프로세스가 있는 경우 컨테이너도 재시작하자.

  • 컨테이너 ID 확인

    docker ps
    ✔
    CONTAINER ID   IMAGE    ...
    aaaaaaaaaaaa   ...
    bbbbbbbbbbbb   ...
    cccccccccccc   ...
  • 컨테이너 재시작

    docker restart aaaaaaaaaaaa bbbbbbbbbbbb cccccccccccc

✅ 정상 확인

위 과정들을 마치면 드디어 변경된 Docker Root Directory를 볼 수 있다.

docker info
...
Docker Root Dir: /data/docker
...

👋

@rundevelrun
똑바로 해, 넌 정말