以下是在 Linux 系统中修改 Docker 镜像存储目录位置的一般步骤:

  1. 查看当前 Docker 的默认存储目录:使用docker info命令可以查看 Docker 存储驱动程序和默认存储位置,其中docker root dir对应的就是默认存储目录。

  2. 停止 Docker 服务:使用sudo systemctl stop docker.service命令停止 Docker 服务。

  3. 进行目录迁移:

    • 创建新的 Docker 目录,选择一个空间较大的磁盘位置。例如,可以在/mnt目录下创建/mnt/docker目录,使用命令sudo mkdir -p /mnt/docker
    • 将原来/var/lib/docker目录下的文件迁移到新目录。使用命令sudo cp -r /var/lib/docker/* /mnt/docker/
  4. 修改配置文件:

    • 编辑/etc/docker/daemon.json文件(如果该文件不存在,则新建一个),添加如下内容:
    {
      "data-root": "/mnt/docker"
    }
    

    上述示例中,/mnt/docker是新的存储目录路径,你可以根据实际情况进行修改。如果涉及默认源的设定,且已设定了国内源,那么可在源地址下方添加一行,类似如下形式:

    {
      "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
  5. 保存退出后,重启 Docker 服务:依次执行sudo systemctl daemon-reloadsudo systemctl restart dockersudo systemctl status docker命令。

  6. 检查 Docker 存储路径是否配置成功:再次使用docker info命令查看,如果显示的 Docker 根目录为新设置的目录,则表示修改成功。

  7. 确认之前的镜像是否还在:使用docker ps -adocker images命令检查。

  8. 在确定容器和镜像没问题后,可以删除原来/var/lib/docker/目录中的文件,使用命令rm -rf /var/lib/docker/*

不同的 Linux 发行版和 Docker 版本可能会有一些细微差别,上述步骤可能需要根据实际情况进行调整。另外,在修改 Docker 存储目录位置时,务必谨慎操作,确保数据的安全和完整性。

对于 Windows 系统,Docker Desktop 的镜像存储位置修改方法可能会有所不同。例如在 Windows 10 中通过 WSL2 修改的一种方式是:首先关闭 Docker 桌面并退出 Docker 桌面,然后打开命令提示符,使用wsl --list -v命令确保相关状态已停止。接着,按照一定步骤进行导出、注销、导入等操作来修改镜像文件的存储位置。

如果你使用的是其他操作系统或 Docker 环境,请参考相应的文档或社区资源来获取适合的修改方法。同时,建议在进行任何重要的系统配置更改之前,先备份重要的数据,以防万一出现问题可以进行恢复。

07-18 14:45