Docker 镜像存储目录的位置修改教程

以下是在 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文件(如果该文件不存在,则新建一个),添加如下内容:
    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。
  5. 保存退出后,重启 Docker 服务:依次执行sudo systemctl daemon-reload、sudo systemctl restart docker和sudo systemctl status docker命令。

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

  7. 确认之前的镜像是否还在:使用docker ps -a和docker 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 环境,请参考相应的文档或社区资源来获取适合的修改方法。同时,建议在进行任何重要的系统配置更改之前,先备份重要的数据,以防万一出现问题可以进行恢复。

相关推荐
code_slave(码畜)4 分钟前
微服务架构落地:读写分离架构 —— 主从延迟引发的“刚开单查不到”灾难与破局
spring boot·分布式·spring cloud·微服务·云原生·架构·读写分离
2501_933923251 小时前
SpringCloud组件:Nacos服务注册快速入门
后端·spring·spring cloud·nacos
Flynn Liang2 小时前
5分钟跑通MQTT:EMQX Docker部署+MQTTX联调(2026最新版,含踩坑)
物联网·mqtt·docker·iot·emqx
萧瑟余晖3 小时前
Spring Cloud Gateway详解
spring cloud·面试
程序员小孔.4 小时前
基于 Spring Cloud + Vue 的 JEEWMS 开源仓储管理平台设计与实现
前端·javascript·vue.js·spring boot·spring cloud·开源
木雷坞5 小时前
Docker Compose端口映射排查:用port和inspect定位网页访问失败
运维·docker·容器
码间留白16 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions
Vex2une16 小时前
Docker Desktop WSL2后端:2026年性能调优与避坑实战指南
windows·docker·desktop·gpu容器·容器开发·virtiofs·buildkit
程序员老赵17 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
TTATTC17 小时前
为什么单会话聊天做不好复杂工程?Claude Code 创作者的并发 Worktree 与记忆闭环实践
docker·开源