본문 바로가기
개발/DevOps

Docker의 Root Directory 위치를 변경해보자.

by leedonggeun 2023. 4. 24.

overlay 디렉토리의 사용

개발 중인 서버에 접근해보니 루트 디렉토리가 91% 사용 중이었습니다. (이미 조치해버려서 사진은 예시이다.)
우리 회사는 KT 공공 클라우드를 사용 중에 있는데, 루트 디렉토리를 고작 17GB 밖에 안줍니다.

어쨌든, 도커의 루트 디렉토리 증설은 불가피했습니다.

01. 루트 디렉토리 설정 확인하기

docker info | grep Root 명령어로 Docker Root Dir이 /var/lib/docker임을 확인했습니다.

[root@abcd merged]# docker info | grep Root
WARNING: bridge-nf-call-ip6tables is disabled
WARNING: Running Swarm in a two-manager configuration. This configuration provides
         no fault tolerance, and poses a high risk to lose control over the cluster.
         Refer to https://docs.docker.com/engine/swarm/admin_guide/ to configure the
         Swarm for fault-tolerance.
  Root Rotation In Progress: false
 Docker Root Dir: /var/lib/docker

02. 루트 디렉토리 설정 변경하기

도커의 설정은 /etc/docker/daemon.json를 변경하면 됩니다.
json 형식으로 작성하면 되며, data-root 요소를 작성합니다.

[root@abcd merged]# vi /etc/docker/daemon.json

{
  "data-root": "/app/docker/overlay"		# 변경하고자 할 디렉토리로 작성합니다.
}

03. 설정 변경 후 도커 재기동하기

[root@abcd merged]# systemctl restart docker

04. 루트 디렉토리 설정 재확인하기

docker info | grep Root 명령어로 다시 한번 확인합니다.
설정했던 바와 같이 /app/docker/overlay로 변경됨을 확인할 수 있습니다.

[root@abcd docker]# docker info | grep Root
WARNING: Running Swarm in a two-manager configuration. This configuration provides
         no fault tolerance, and poses a high risk to lose control over the cluster.
         Refer to https://docs.docker.com/engine/swarm/admin_guide/ to configure the
         Swarm for fault-tolerance.
  Root Rotation In Progress: false
 Docker Root Dir: /app/docker/overlay

/var/lib/docker/overlay~~~에서 /app/docker/overlay/~~~ 로 변경됨을 확인할 수 있습니다.

05. 마치며...

이상으로, 도커의 루트 디렉토리를 변경하는 법을 알아보았습니다.
최근 도커에 대해 하나둘 알아가며 느낀 점은, 굉장히 친숙해지기 어렵겠다... 와 익숙해지고, 능숙해진다면 굉장히 편리하겠다 라고 느끼고 있습니다.

조금 더 성장할 수 있는 계기가 되었으면 좋겠습니다!

댓글