docker 镜像宿主机上本地存储的位置默认在哪里
在 Docker 中,镜像、容器和其他相关数据的默认存储位置取决于宿主机的操作系统。以下是不同操作系统下的默认存储路径及其管理要点:
一、Linux 系统(默认路径)
1. 默认存储目录
/var/lib/docker/
包含以下关键子目录:
-
overlay2/:镜像层和容器文件系统的实际存储(默认使用 overlay2 存储驱动) -
image/:镜像元数据 -
containers/:容器运行时数据 -
volumes/:持久化卷数据
2. 验证存储位置
docker info | grep "Docker Root Dir"
# 输出示例:Docker Root Dir: /var/lib/docker
3. 修改默认路径
通过修改 /etc/docker/daemon.json 指定新路径:
{
"data-root": "/new/path/to/docker"
}
然后重启 Docker 服务:
sudo systemctl restart docker
二、macOS(Docker Desktop)
1. 底层机制
macOS 的 Docker Desktop 实际上是在 Linux 虚拟机(VM)中运行 Docker,宿主机的路径是虚拟机的路径。
2. 访问虚拟机内部
# 进入 Docker 的 Linux VM
docker run -it --rm --privileged --pid=host alpine:latest nsenter -t 1 -m -u -n -i sh
# 在 VM 内查看存储路径
ls /var/lib/docker/
3. 宿主机对应文件
Docker 数据以 .qcow2 或 .raw 格式存储在:
~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
三、Windows(Docker Desktop)
1. WSL 2 后端
默认存储在 WSL 2 发行版的虚拟磁盘中:
\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\
2. Hyper-V 后端
存储在 Hyper-V 虚拟机的 VHDX 文件中:
%USERPROFILE%\AppData\Local\Docker\wsl\data\ext4.vhdx
四、关键注意事项
-
空间清理
-
定期清理无用数据:
docker system prune -a -
查看详细空间使用:
docker system df
-
-
备份恢复
-
备份整个
/var/lib/docker目录即可备份所有 Docker 数据。
-
-
存储驱动差异
-
overlay2(Linux 默认):高效利用层存储 -
aufs/devicemapper:旧版本可能使用 -
查看当前驱动:
docker info | grep "Storage Driver"
-
-
生产环境建议
-
将 Docker 数据目录挂载到独立磁盘分区:
/dev/sdb1 /var/lib/docker xfs defaults 0 0
-
五、特殊场景处理
1. 镜像导出到宿主机
docker save -o /path/on/host/image.tar my-image:tag
2. 宿主机直接操作镜像层
# 查看镜像层内容(需 root 权限)
sudo ls /var/lib/docker/overlay2/<layer-id>/diff
3. 迁移 Docker 数据
# 停止 Docker → 复制数据 → 修改 data-root → 重启
sudo systemctl stop docker
rsync -aqxP /var/lib/docker/ /new/path/
通过理解这些存储路径,您可以更好地管理 Docker 的磁盘空间、备份关键数据,并在必要时进行迁移或清理操作。
郭慕荣博客园

浙公网安备 33010602011771号