Why?

通常,我们在使用 Docker 时不需要关心其镜像和容器保存的位置。但随着使用到的 Docker 镜像的增多以及构建的容器的增多,其所占用 的空间也会越来越多。因为 Docker 默认的存储位置为 /var/lib/docker

How?

本次操作实践是基于新安装的 Docker 进行的,所以已经存在的环境迁移暂不涉及。

以 Drop-In 文件形式操作

  • 停掉 docker 服务
    systemctl stop docker
  • 创建 Drop-In 文件
mkdir /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/docker.conf
  • 在新创建的 Drop-In 文件内输入以下内容

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd –data-root /new_root/new_position –storage-driver devicemapper

  • 同步之前位置文件到新位置
rsync -avzP /var/lib/docker/* /new_root/new_position/
  • 重载 daemon 守护进程并重启服务
systemctl daemon-reload
systemctl start docker
  • 查看配置信息
docker info

查看 Docker Root Dir 是否为新设置的位置了

参考资料

  1. 在Centos7 更改Docker默认镜像和容器的位置
  2. Daemon CLI reference (dockerd) 注:内容和版本不符
  3. dockerd –help