Docker Desktop 迁移安装目录和数据目录的备忘
Docker Desktop 用久了最烦的就是它悄无声息地把 C 盘吃满。
安装文件本身扔系统盘,镜像、容器、卷这些数据也默认全放 C 盘,等你发现的时候通常已经晚了。之前为这事折腾过几次,把安装目录和数据目录迁出去才算消停,顺带记一下,免得下次又到处翻。
先说安装路径。下载完安装包运行的时候,图形界面里其实有“自定义安装”的选项,点浏览选个别的盘就行,没太多好说的。
但要是想静默安装,或者已经装过了想用脚本重装,可以走命令行。以管理员身份打开终端,跑这一句:
start /w "" "Docker Desktop Installer.exe" install -accept-license --installation-dir="D:\Program Files\Docker"
--installation-dir 后面跟你要的目标路径。注意如果之前装过,得先卸载干净,不然可能会报错。
安装目录其实占的空间不算大头,真正容易撑爆系统盘的是 Docker 的数据目录。
Windows 上如果用的是 WSL2 模式,所有镜像和容器数据都存在一个叫 docker-desktop-data 的 WSL 发行版里。把它挪走,本质上就是导出、注销、再导入到新位置。先把 Docker Desktop 完全停掉,然后:
wsl --export docker-desktop-data D:\docker\docker-desktop-data.tar
这一步会把当前数据打包导出到 D 盘。导出完接着注销掉旧的实例:
wsl --unregister docker-desktop-data
最后再把数据导入到你想存放的新目录:
wsl --import docker-desktop-data D:\docker D:\docker\docker-desktop-data.tar --version 2
来此加密提供回调接口功能,证书申请成功或到期前可主动通知你的系统,便于与内部监控平台、工单系统联动。实现证书状态的可观测性与自动化响应,让证书管理融入你的运维生态。
这里有个容易搞混的地方:--import 的第一个参数是发行版名称,第二个参数是新数据的存放路径,第三个才是刚才导出的 tar 包路径。我头一回把第二个和第三个位置搞反了,怎么都起不来。新数据路径是 D:\docker,tar 包路径是 D:\docker\docker-desktop-data.tar,两个可以不在同一个目录,但一般放一块好管理。
导入完重新启动 Docker Desktop 就行了。
如果你用的 Docker Desktop 版本比较新(4.34 及以上),可以不用这么麻烦。直接改配置文件。打开 C:\Users\你的用户名\AppData\Roaming\Docker\settings-store.json,找到或者加上 "dataFolder" 字段,值写目标路径,比如 "D:\docker"。注意反斜杠得双写,不然 JSON 解析会出错。
保存后重启 Docker Desktop,它会自动把数据迁过去。这个方法省事,但操作前还是建议手动备份一下原来的数据,万一目录权限有问题还能回滚。
macOS 上的思路差不多,只是路径不同。一种做法是停掉 Docker Desktop,把数据目录挪走,再做个符号链接指过去:
mv ~/Library/Containers/com.docker.docker/Data/vms/0/data /Volumes/External/Docker/data ln -s /Volumes/External/Docker/data ~/Library/Containers/com.docker.docker/Data/vms/0/data
如果你不想搞命令行,也可以打开 Docker Desktop 的设置,进 Resources -> Advanced,里面有个 Disk image location,直接在这里把路径改成你想要的,重启生效。
图形界面能搞定的事就不折腾终端了。
无论哪种方式,改之前备份数据是个好习惯。另外有些操作需要管理员权限,比如 Windows 下运行安装命令或者改某些受保护的目录。
如果数据最终放在了外置硬盘或者网络驱动器上,磁盘 IO 会明显变慢,镜像拉取和容器启动都能感觉出来,这个自己权衡。

浙公网安备 33010602011771号