Docker컨테이너 저장경로 변경방법
Docker를 rpm이나 deb같은 패키지로 설치하는 경우 기본 경로가 /var/lib/docker 인데, 대부분 /, /var가 같은 디스크를 사용하고 있기 때문에 컨테이너 용량이 커지면 OS영역에서 사용하는 디스크 사용량이 같이 증가하게 되는데…
바로 이렇게….
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.7G 0 7.7G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 738M 7.0G 10% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda2 438G 430G 8G 99% /
/dev/sdb1 2T 500G 1.5T 25% /data/
/dev/sda1 497M 275M 223M 56% /boot
overlay 438G 430G 8G 99% /var/lib/docker/overlay2/53de091a6179957607c19a836f65ce1f9f4a43308cf7b24911907958c9e9f2a2/merged
$ du -hs /var/lib/docker
420G /var/lib/docker
OS영역을 총 438G 할당했는데 Docker에서 420G를 사용하면서 전체 사용율 99%로…
/data파티션에 총 2T중 500G를 쓰고 있어서 Docker 데이터를 /data으로 이동하는것으로 조치 진행.
- Docker stop
$ systemctl stop docker
- docker 컨테이너 데이터를 /data/docker로 구성
$ cat /etc/docker/daemon.json { "data-root": "/data/docker" }
- Docker Engine버전에 따라서 daemon.json 파일로 적용되는 버전이 있고 안되는 버전이 있는 것으로 확인
- docker 데이터 이전
$ mv -f /var/lib/docker /data/docker
- docker 시작
$ systemctl start docker
- docker 설정정보 확인
$ docker info ... Docker Root Dir: /data/docker ...
컨테이너 저장경로 변경
- podman 기반에서 컨테이너 스토리지 경로 변경
$> vi /etc/containers/storage.conf ... runroot = "/service/containers/storage" graphroot = "/service/containers/storage" ...