不同系统修改 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 或拉取新镜像,确认存储路径已更改。
相关推荐
Benszen20 小时前
Docker容器化技术实战指南
运维·docker·容器
ZzzZZzzzZZZzzzz…20 小时前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
Hommy8821 小时前
【开源剪映小助手】Docker 部署
docker·容器·开源·github·aigc
一叶知秋yyds1 天前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
斯普信云原生组1 天前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
喵了几个咪1 天前
如何在 Superset Docker 容器中安装 MySQL 驱动
mysql·docker·容器·superset
工具罗某人1 天前
docker compose部署kafka集群搭建
docker·容器·kafka
safestar20121 天前
ES批量写入性能调优:BulkProcessor 参数详解与实战案例
java·大数据·运维·jenkins
来一颗砂糖橘1 天前
负载均衡的多维深度解析
运维·负载均衡
楠奕1 天前
CentOS7安装GoldenDB单机搭建及常见报错解决方案
linux·运维·服务器