docker 镜像宿主机上本地存储的位置默认在哪里

2026-02-17 14:08:35

在 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//diff

3. 迁移 Docker 数据

# 停止 Docker → 复制数据 → 修改 data-root → 重启

sudo systemctl stop docker

rsync -aqxP /var/lib/docker/ /new/path/

通过理解这些存储路径,您可以更好地管理 Docker 的磁盘空间、备份关键数据,并在必要时进行迁移或清理操作。