Docker pull을 사용하다가 리눅스 서버의 root에 마운트된 디스크가 꽉 차서 Docker Root 경로를 바꾸는 방법을 찾아봤습니다(참고: link).
현재 Docker Root Dir이 /var/lib/docker, 변경할 이미지 저장 경로는 /data/docker/root라고 하겠습니다. 이미지 저장 경로는 미리 만들어 둡니다. 참고로, 현재 Docker Root Dir은 다음 명령으로 확인할 수 있습니다.
$ docker info |grep Root
아래 작업들은 root 계정으로 진행합니다. 먼저 docker daemon을 정지합니다.
# service docker stop
/etc/docker/daemon.json 파일에 다음 내용을 추가합니다(Docker v17.05.0 이상).
{
"data-root": "/data/docker/root"
}
기존의 Docker 데이터를 새로운 경로로 복사합니다. 기존 데이터를 지우기 전에 Docker가 잘 작동하는 것을 확인하려고 합니다. 이를 위해 기존 경로의 이름을 바꾸고 Docker를 재시작합니다.
# cp -rp /var/lib/docker/* /data/docker/root/
# mv /var/lib/docker /var/lib/docker.old
# service docker start
Docker가 잘 작동하는지 확인한 후 기존 경로를 삭제합니다.
# docker info |grep Root
# docker images
# rm -rf /var/lib/docker.old