Skip to main content

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으로 이동하는것으로 조치 진행.

  1. Docker stop
    $ systemctl stop docker
  2. docker 컨테이너 데이터를 /data/docker로 구성
    $ cat /etc/docker/daemon.json
    {
    "data-root": "/data/docker"
    }
    • Docker Engine버전에 따라서 daemon.json 파일로 적용되는 버전이 있고 안되는 버전이 있는 것으로 확인
  3. docker 데이터 이전
    $ mv -f /var/lib/docker /data/docker
  4. docker 시작
    $ systemctl start docker
  5. docker 설정정보 확인
    $ docker info
    ...
    Docker Root Dir: /data/docker
    ...

컨테이너 저장경로 변경

  1. podman 기반에서 컨테이너 스토리지 경로 변경
    $> vi /etc/containers/storage.conf
    ...
    runroot = "/service/containers/storage"
    graphroot = "/service/containers/storage"
    ...


  2.