当前位置: 首页 > news >正文

不同系统修改 Docker Desktop 存储路径(从C盘修改到D盘)

文章目录

  • 不同系统修改 Docker Desktop 存储路径
    • PS:如果安装了Docker Desktop,请跳到第三节先行操作,不行再返回按照各自系统自行选择教程
    • 一、Windows操作步骤
      • 1. 检查 WSL2 状态
      • 2. 停止 Docker Desktop 和 WSL2
      • 3. 备份 WSL2 数据
      • 4. 注销现有 WSL2 子系统
      • 5.导入 WSL2 子系统到新路径
      • 6. 验证迁移
      • 7.清理备份文件(可选)
      • 8.注意事项:
  • **Linux 系统修改 Docker 存储路径**
    • 二、Linux操作步骤
      • **1. 停止 Docker 服务**
      • 2. 确认当前存储路径
      • 3. 重启 Docker 服务
      • 4. 验证修改
  • 三、通过 Docker Desktop 界面修改(Windows/macOS,部分版本适用)
  • 四、通用注意事项

不同系统修改 Docker Desktop 存储路径

​ 摘要:修改 Docker Desktop 中 Docker 容器的保存路径,主要涉及更改镜像和容器数据的存储位置。以下是针对 Windows 和 macOS 系统修改 Docker Desktop 默认存储路径的详细步骤。由于 Docker Desktop 依赖 WSL2(Windows Subsystem for Linux)或虚拟化技术,修改路径通常需要操作虚拟磁盘文件或配置文件。Docker Desktop 在 Windows 上默认将镜像和容器数据存储在 C:\Users\<用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx 文件中。随着镜像和容器的增加,C 盘空间可能不足。

PS:如果安装了Docker Desktop,请跳到第三节先行操作,不行再返回按照各自系统自行选择教程

一、Windows操作步骤

1. 检查 WSL2 状态

  • 打开命令提示符(以管理员身份运行)或 PowerShell。

  • 输入以下命令查看当前 WSL2 子系统状态:

    wsl --list -v
    

    输出示例:(如果不存在docker-desktop-data,则接下来docker-desktop-data的相应步骤请跳过)

    NAME                   STATE           VERSION
    * docker-desktop       Running          2docker-desktop-data  Running          2
    

    确认 docker-desktopdocker-desktop-data 存在,docker-desktop-data 是存储镜像和容器数据的子系统。

2. 停止 Docker Desktop 和 WSL2

  • 退出 Docker Desktop 应用程序(在系统托盘右键点击 Docker 图标,选择“Quit Docker Desktop”)。

  • 停止 WSL2 子系统:

    wsl --shutdown
    

    再次运行 wsl --list -v 确认所有子系统状态为 Stopped

3. 备份 WSL2 数据

  • 创建一个目标目录,例如 D:\Docker\wsl(确保目标磁盘有足够空间)。

  • 导出 docker-desktopdocker-desktop-data

    wsl --export docker-desktop D:\Docker\wsl\docker-desktop.tar
    wsl --export docker-desktop-data D:\Docker\wsl\docker-desktop-data.tar
    

    这会将当前 WSL2 子系统备份为 tar 文件,操作可能需要几分钟。

4. 注销现有 WSL2 子系统

  • 注销 docker-desktopdocker-desktop-data

    wsl --unregister docker-desktop
    wsl --unregister docker-desktop-data
    

5.导入 WSL2 子系统到新路径

  • 创建新目录用于存储 WSL2 数据,例如 D:\Docker\wsl\desktopD:\Docker\wsl\data

  • 导入备份到新路径:

    wsl --import docker-desktop D:\Docker\wsl\desktop D:\Docker\wsl\docker-desktop.tar --version 2
    wsl --import docker-desktop-data D:\Docker\wsl\data D:\Docker\wsl\docker-desktop-data.tar --version 2
    

    确保目标目录已提前创建。

6. 验证迁移

  • 启动 Docker Desktop,检查是否正常运行。

  • 运行以下命令确认存储路径:

    wsl -l -v
    

    确认 docker-desktop-data 的路径已指向新位置。

  • 拉取一个新镜像(例如 docker pull nginx),检查 D:\Docker\wsl\data 目录大小是否增加,而 C 盘路径(如 C:\Users\<用户名>\AppData\Local\Docker\wsl\data)无变化。

7.清理备份文件(可选)

  • 如果确认迁移成功,可删除备份文件(例如 D:\Docker\wsl\docker-desktop.tarD:\Docker\wsl\docker-desktop-data.tar),但保留 ext4.vhdx 文件,因为这是实际存储镜像和容器数据的虚拟磁盘。

8.注意事项:

  • 确保新路径的磁盘空间充足,迁移过程可能需要较长时间,取决于数据量。

  • 如果迁移后 Docker Desktop 无法启动,可能需要检查 WSL2 是否正常运行,或重新安装 Docker Desktop。

  • 某些旧版本 Docker Desktop(如 4.17 之前)可能存在修改路径失败的 bug,建议更新到最新版本或使用 4.16 版本进行迁移后再升级。

  • 如果迁移到非 C 盘后 Docker 运行卡顿,可能是硬盘读写性能不足,建议使用 SSD。

Linux 系统修改 Docker 存储路径

二、Linux操作步骤

在 Linux 上,Docker 默认存储路径为 /var/lib/docker。修改方法如下:

1. 停止 Docker 服务

sudo systemctl stop docker

2. 确认当前存储路径

docker info --format '{{.DockerRootDir}}'

方法一:使用符号链接

(1)移动 /var/lib/docker 到新路径(例如 /data/docker):

sudo mv /var/lib/docker /data/docker

(2)创建符号链接:

sudo ln -sf /data/docker /var/lib/docker

方法二:修改 daemon.json

(1)编辑或创建 /etc/docker/daemon.json

sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json

(2)添加以下内容:

{"data-root": "/data/docker"
}

(3)保存并退出。

3. 重启 Docker 服务

sudo systemctl daemon-reload
sudo systemctl start docker

4. 验证修改

  • 确认新路径:

    docker info --format '{{.DockerRootDir}}'
    
  • 拉取新镜像,检查 /data/docker 目录是否增加。

注意事项

  • 确保新路径有足够权限(chown docker:docker /data/docker)。
  • 如果使用 devicemapper 存储驱动,需在 daemon.json 中指定 storage-driver

三、通过 Docker Desktop 界面修改(Windows/macOS,部分版本适用)

对于 Docker Desktop 4.17 及以上版本,可以尝试通过图形界面修改:

  1. 打开 Docker Desktop,点击右上角齿轮图标进入“Settings”。
  2. 导航到“Resources” > “Advanced”。
  3. 在“Disk image location”中,点击“Browse”选择新路径(例如 D:\Docker\data)。
  4. 点击“Apply & Restart”保存并重启 Docker Desktop。

注意:此方法可能因版本或 bug 而失败(如卡在 loading 状态)。若失败,建议使用 WSL2 方法(Windows)或符号链接方法(macOS)。

四、通用注意事项

  • 备份数据:在操作前备份重要镜像和容器(使用 docker savedocker export)。
  • 磁盘空间:确保目标路径有足够空间,建议使用 SSD 提高性能。
  • 版本兼容性:检查 Docker Desktop 版本,旧版本可能需要特定方法(如符号链接)。
  • 验证:迁移后运行 docker info 或拉取新镜像,确认存储路径已更改。
http://www.lqws.cn/news/447697.html

相关文章:

  • 解锁微服务潜能:深入浅出 Nacos
  • 蜻蜓Q系统的技术演进:从Laravel 6到Laravel 8的升级之路-优雅草卓伊凡
  • C# winform教程(二)----GroupBox
  • ROS学习之服务通信
  • 【AI编程】第3期,针对AI生成的改枪码列表创建对应的数据库表
  • AWS CloudFormation深度解析:构建现代云原生应用基础设施
  • SpringBoot扩展——发送邮件!
  • Spring MVC参数绑定终极手册:单多参对象集合JSON文件上传精讲
  • 网络编程及原理(五)
  • Kotlin 2.6 猜数小游戏
  • AI免费工具:promptpilot、今天学点啥、中英文翻译
  • WSL 安装使用和常用命令
  • 设计模式精讲 Day 7:桥接模式(Bridge Pattern)
  • OpenAI 公布《走向理解与预防失准泛化:由“角色特征”驱动的突现性失准》研究总结
  • 用“Gemini 2.0 Flash Preview Image Generation”模型修改图片,有哪些常用的提示词和方法
  • uni-app项目实战笔记16--实现头部导航栏效果
  • C++ inline变量
  • 记录存储的使用
  • MySQL 的 WITH ROLLUP 功能
  • LLM大模型应用监控---LangChain接入LangFuse进阶篇
  • Java Map 深度解析
  • 垃圾收集器
  • 【Wi-Fi天气时钟】前置知识合集
  • 硬件-DAY04(ds18b20、ARM内核)
  • 《二叉搜索树》
  • 【数字人开发】Unity+百度智能云平台实现短语音文本识别功能
  • 主体和债项均为“AAA”等级 海尔消金发行10亿金融债
  • 在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 环境(附详细部署教程)
  • 如何在 Pop!_OS 或 Ubuntu Linux 上安装 Dash to Dock
  • Linux简单了解以及VM虚拟机的安装使用(后端程序员)