change data directory of docker

Docker의 기본 데이터 디렉토리는 /var/lib/docker 이다.
Docker를 계속 쓰다보면 업그레이드, 확장 및 백업이 쉽도록 다른 디스크에 쓰도록 조정해야 한다.

변경 전에 기본 데이터 디렉토리를 쓰고 있는지 확인한다.

sudo lsof | grep /var/lib/docker

서비스를 중지시킨다.

sudo service docker stop

변경될 데이터 디렉토리를 만든다.

mkdir -p [new directory]

DOCKER_OPTS를 바꾸는 방법과 service파일에서 실행시 지정하는 방법이 있는데 DOCKER_OPTS를 변경하는 방법은 뭔가 옵션이 잘못된건지 작동하지 않았다.
혹시 모를 상황을 위해 두가지 모두 기록해놓는다.


1.DOCKER_OPTS 변경

  • /var/default/docker 수정
sudo vi /var/default/docker
  • DOCKER_OPTS 변경
DOCKER_OPTS="--data-root=/[new directory]/"
  1. service 파일 변경
  • /lib/systemd/system/docker.service 변경
sudo vi /lib/systemd/system/docker.service 

변경했으면 docker를 다시 띄운다

sudo service docker start

docker 옵션이 적용되었는지 확인해본다.

sudo service docker status

아래와 같이 설정한 디렉토리가 옵션에 나오는지 확인한다.

/usr/bin/dockerd -H fd:// 
     --containerd=/run/containerd/containerd.sock 
     --data-root=[new directory]

dockerd에서 사용하고 있는지 확인해본다.

sudo lsof | grep [new directory]

이제 새로운 디렉토리에 데이터가 쌓인다.