文章目录
- [不同系统修改 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 子系统状态:
bashwsl --list -v
输出示例:(如果不存在docker-desktop-data,则接下来docker-desktop-data的相应步骤请跳过)
NAME STATE VERSION * docker-desktop Running 2 docker-desktop-data Running 2
确认
docker-desktop
和docker-desktop-data
存在,docker-desktop-data
是存储镜像和容器数据的子系统。
2. 停止 Docker Desktop 和 WSL2
-
退出 Docker Desktop 应用程序(在系统托盘右键点击 Docker 图标,选择"Quit Docker Desktop")。
-
停止 WSL2 子系统:
bashwsl --shutdown
再次运行
wsl --list -v
确认所有子系统状态为Stopped
。
3. 备份 WSL2 数据
-
创建一个目标目录,例如
D:\Docker\wsl
(确保目标磁盘有足够空间)。 -
导出
docker-desktop
和docker-desktop-data
:bashwsl --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-desktop
和docker-desktop-data
:bashwsl --unregister docker-desktop wsl --unregister docker-desktop-data
5.导入 WSL2 子系统到新路径
-
创建新目录用于存储 WSL2 数据,例如
D:\Docker\wsl\desktop
和D:\Docker\wsl\data
。 -
导入备份到新路径:
bashwsl --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,检查是否正常运行。
-
运行以下命令确认存储路径:
bashwsl -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.tar
和D:\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. 验证修改
-
确认新路径:
bashdocker info --format '{{.DockerRootDir}}'
-
拉取新镜像,检查
/data/docker
目录是否增加。
注意事项:
- 确保新路径有足够权限(
chown docker:docker /data/docker
)。 - 如果使用
devicemapper
存储驱动,需在daemon.json
中指定storage-driver
。
三、通过 Docker Desktop 界面修改(Windows/macOS,部分版本适用)
对于 Docker Desktop 4.17 及以上版本,可以尝试通过图形界面修改:
- 打开 Docker Desktop,点击右上角齿轮图标进入"Settings"。
- 导航到"Resources" > "Advanced"。
- 在"Disk image location"中,点击"Browse"选择新路径(例如
D:\Docker\data
)。 - 点击"Apply & Restart"保存并重启 Docker Desktop。
注意:此方法可能因版本或 bug 而失败(如卡在 loading 状态)。若失败,建议使用 WSL2 方法(Windows)或符号链接方法(macOS)。
四、通用注意事项
- 备份数据 :在操作前备份重要镜像和容器(使用
docker save
和docker export
)。 - 磁盘空间:确保目标路径有足够空间,建议使用 SSD 提高性能。
- 版本兼容性:检查 Docker Desktop 版本,旧版本可能需要特定方法(如符号链接)。
- 验证 :迁移后运行
docker info
或拉取新镜像,确认存储路径已更改。