以下是在 Linux 系统中修改 Docker 镜像存储目录位置的一般步骤:
-
查看当前 Docker 的默认存储目录:使用
docker info
命令可以查看 Docker 存储驱动程序和默认存储位置,其中docker root dir
对应的就是默认存储目录。 -
停止 Docker 服务:使用
sudo systemctl stop docker.service
命令停止 Docker 服务。 -
进行目录迁移:
- 创建新的 Docker 目录,选择一个空间较大的磁盘位置。例如,可以在
/mnt
目录下创建/mnt/docker
目录,使用命令sudo mkdir -p /mnt/docker
。 - 将原来
/var/lib/docker
目录下的文件迁移到新目录。使用命令sudo cp -r /var/lib/docker/* /mnt/docker/
。
- 创建新的 Docker 目录,选择一个空间较大的磁盘位置。例如,可以在
-
修改配置文件:
- 编辑
/etc/docker/daemon.json
文件(如果该文件不存在,则新建一个),添加如下内容:
json{ "data-root": "/mnt/docker" }
上述示例中,
/mnt/docker
是新的存储目录路径,你可以根据实际情况进行修改。如果涉及默认源的设定,且已设定了国内源,那么可在源地址下方添加一行,类似如下形式:json{ "registry-mirrors": ("http://hub-mirror.c.163.com"), "data-root": "/mnt/docker" }
- 此外,还需编辑 Docker 配置文件。在
/etc/systemd/system/multi-user.target.wants/docker.service
中,将execstart=/usr/bin/dockerd -h fd:// --containerd=/run/containerd/containerd.sock
修改为execstart=/usr/bin/dockerd --graph=/mnt/docker --storage-driver=overlay
。
- 编辑
-
保存退出后,重启 Docker 服务:依次执行
sudo systemctl daemon-reload
、sudo systemctl restart docker
和sudo systemctl status docker
命令。 -
检查 Docker 存储路径是否配置成功:再次使用
docker info
命令查看,如果显示的 Docker 根目录为新设置的目录,则表示修改成功。 -
确认之前的镜像是否还在:使用
docker ps -a
和docker images
命令检查。 -
在确定容器和镜像没问题后,可以删除原来
/var/lib/docker/
目录中的文件,使用命令rm -rf /var/lib/docker/*
。
不同的 Linux 发行版和 Docker 版本可能会有一些细微差别,上述步骤可能需要根据实际情况进行调整。另外,在修改 Docker 存储目录位置时,务必谨慎操作,确保数据的安全和完整性。
对于 Windows 系统,Docker Desktop 的镜像存储位置修改方法可能会有所不同。例如在 Windows 10 中通过 WSL2 修改的一种方式是:首先关闭 Docker 桌面并退出 Docker 桌面,然后打开命令提示符,使用wsl --list -v
命令确保相关状态已停止。接着,按照一定步骤进行导出、注销、导入等操作来修改镜像文件的存储位置。
如果你使用的是其他操作系统或 Docker 环境,请参考相应的文档或社区资源来获取适合的修改方法。同时,建议在进行任何重要的系统配置更改之前,先备份重要的数据,以防万一出现问题可以进行恢复。