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

文章目录

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

    bash 复制代码
    wsl --list -v

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

    复制代码
    NAME                   STATE           VERSION
    * docker-desktop       Running          2
      docker-desktop-data  Running          2

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

2. 停止 Docker Desktop 和 WSL2

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

  • 停止 WSL2 子系统:

    bash 复制代码
    wsl --shutdown

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

3. 备份 WSL2 数据

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

  • 导出 docker-desktopdocker-desktop-data

    bash 复制代码
    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

    bash 复制代码
    wsl --unregister docker-desktop
    wsl --unregister docker-desktop-data

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

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

  • 导入备份到新路径:

    bash 复制代码
    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,检查是否正常运行。

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

    bash 复制代码
    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 服务

bash 复制代码
sudo systemctl stop docker

2. 确认当前存储路径

bash 复制代码
docker info --format '{{.DockerRootDir}}'

方法一:使用符号链接

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

bash 复制代码
sudo mv /var/lib/docker /data/docker

(2)创建符号链接:

bash 复制代码
sudo ln -sf /data/docker /var/lib/docker

方法二:修改 daemon.json

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

bash 复制代码
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json

(2)添加以下内容:

json 复制代码
{
  "data-root": "/data/docker"
}

(3)保存并退出。

3. 重启 Docker 服务

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl start docker

4. 验证修改

  • 确认新路径:

    bash 复制代码
    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 或拉取新镜像,确认存储路径已更改。
相关推荐
“αβ”42 分钟前
Linux-多线程安全
linux·运维·服务器·ssh·github·线程·进程
18你磊哥1 小时前
Docker Compose部署Spring Cloud 微服务系统
spring cloud·docker·微服务
爱喝西北风的东北风2 小时前
Linux树莓派项目实战:外网访问、PWM呼吸灯、超声波测距与驱动开发
linux·运维·驱动开发
Blossom.1182 小时前
基于深度学习的智能图像去雾技术:技术与实践
运维·服务器·人工智能·深度学习·机器学习·sklearn·智能电视
铃木隼.3 小时前
haproxy搭建nginx网站访问
运维·nginx
ZaaaaacK3 小时前
Linux系统远程操作和程序编译
linux·运维·postgresql
Y_3_74 小时前
Netty实战:从核心组件到多协议实现(超详细注释,udp,tcp,websocket,http完整demo)
linux·运维·后端·ubuntu·netty
测试专家4 小时前
ARINC653系统架构
大数据·linux·运维
IT_10244 小时前
Nginx教程:概念+安装+SSL安装,通过调优Nginx来提高应用性能
运维·nginx·ssl
deeper_wind5 小时前
配置DHCP服务(小白的“升级打怪”成长之路)
运维·服务器·智能路由器