在 Docker 中,Image(镜像)默认存储在宿主机的特定目录中,具体位置取决于操作系统和存储驱动类型。以下是详细说明:
/var/lib/docker/
overlay2/
(默认存储驱动):镜像层(layers)和元数据。image/
:存储驱动相关的元数据。containers/
:容器数据。~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
)。bash
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
然后查看 /var/lib/docker/
。docker info
docker info | grep "Docker Root Dir"
输出示例:
Docker Root Dir: /var/lib/docker
docker info | grep "Storage Driver"
输出示例:
Storage Driver: overlay2
如果需要更改镜像存储位置(例如换到更大磁盘):
bash
sudo systemctl stop docker
bash
sudo rsync -avz /var/lib/docker /new/path/
/etc/docker/daemon.json
):
json
{
"data-root": "/new/path/docker"
}
bash
sudo systemctl start docker
通过 GUI 修改虚拟磁盘位置:
Settings → Resources → Advanced → Disk image location.
/var/lib/docker/overlay2/
(以 overlay2
驱动为例)。bash
docker inspect <IMAGE_ID> | grep "Layers"
bash
docker system prune -a # 删除所有未使用的镜像
/var/lib/docker
所在磁盘空间不足,可能导致 Docker 无法运行。/var/lib/docker
需要 root
权限。aufs
、devicemapper
)的存储结构可能不同。通过以上方法,你可以定位和管理 Docker 镜像的存储位置。如有其他问题,欢迎进一步提问!