[docker] 루트 디렉토리 변경 방법(더 큰 용량으로 데이터 마이그레이션)

HYEOB KIM·2022년 5월 24일
0

docker

목록 보기
2/3

문제

기존에 dockerinfluxDBGrafana를 올려놓았는데, 용량이 턱없이 부족했습니다.

그래서 용량을 늘리려고 하는데, NCP에 올려놓은 서버이고, 루트 볼륨은 디스크 크기 변경이 불가능했습니다.

볼륨 생성

새로 100GB 볼륨을 만들었고 서버에 연결했습니다.

파티션 나눠주고,

파일 시스템은 기존 루트 볼륨이 ext4여서 동일하게 포맷해주었습니다.

/data 디렉토리를 만들고, 이곳에 100GB 볼륨을 마운트했습니다.

docker 루트 디렉토리 변경

먼저 컨테이너 실행 목록을 확인합니다.
(루트 디렉토리를 변경하고 컨테이너 목록 실행 시 동일하게 나오는지 확인하기 위해서입니다)

$ docker ps -a

디스크 용량을 확인합니다.
(overlay를 보시면 기존 루트 볼륨인 /를 가리키고 있는 것을 볼 수 있습니다)

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           796M  1.2M  795M   1% /run
/dev/xvda2       49G   41G  5.6G  89% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop0      112M  112M     0 100% /snap/core/12941
/dev/loop1      111M  111M     0 100% /snap/core/12834
overlay          49G   41G  5.6G  89% /var/lib/docker/overlay2/d155b437707a32638eef1994412aaffbc265b371308a8705edbbad501d63708a/merged
overlay          49G   41G  5.6G  89% /var/lib/docker/overlay2/35b6c7dcb6de34b81ac26771c4f2035db140c8e4325cf14df1aeccf262f30d26/merged
tmpfs           796M     0  796M   0% /run/user/1001
/dev/xvdb1       98G   61M   93G   1% /data

아래 명령으로 현재 docker의 루트 디렉토리를 알 수 있습니다.

$ docker info | grep Root
WARNING: No swap limit support
 Docker Root Dir: /var/lib/docker

루트 디렉토리는 /var/lib/docker입니다.
해당 디렉토리를 새로 추가한 볼륨이 마운트된 폴더복사합니다.

$ cp -r /var/lib/docker /data

이제 /etc/docker/daemon.json 파일을 만들고 아래와 같이 입력합니다.

{
	"data-root": "새로운 루트 디렉토리 경로"
}

저의 경우 아래와 같이 입력할 수 있습니다.

{
	"data-root": "/data/docker"
}

마지막으로 도커 서비스재시작합니다.

$ systemctl restart docker.service

루트 디렉토리가 제대로 변경되었는지 아래 명령을 통해 확인합니다.

$ docker info | grep Root
WARNING: No swap limit support
 Docker Root Dir: /data/docker

루트 디렉토리 변경 전 컨테이너 목록과 동일한지 확인합니다.

$ docker ps -a

정상적으로 확인되었으면 변경 전 루트 디렉토리를 지워줍니다.

$ rm -rf /var/lib/docker

디스크 용량을 확인합니다.
(overlay의 경로가 변경되었네요. /data와 동일한 것을 볼 수 있습니다.)

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           796M  1.2M  795M   1% /run
/dev/xvda2       49G   20G   28G  41% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop0      112M  112M     0 100% /snap/core/12941
/dev/loop1      111M  111M     0 100% /snap/core/12834
tmpfs           796M     0  796M   0% /run/user/1001
/dev/xvdb1       98G   23G   71G  25% /data
overlay          98G   23G   71G  25% /data/docker/overlay2/35b6c7dcb6de34b81ac26771c4f2035db140c8e4325cf14df1aeccf262f30d26/merged
overlay          98G   23G   71G  25% /data/docker/overlay2/d155b437707a32638eef1994412aaffbc265b371308a8705edbbad501d63708a/merged
profile
Devops Engineer

0개의 댓글