在 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 infodocker info | grep "Docker Root Dir"
输出示例:
Docker Root Dir: /var/lib/docker
docker info | grep "Storage Driver"
输出示例:
Storage Driver: overlay2
如果需要更改镜像存储位置(例如换到更大磁盘):
bash
sudo systemctl stop dockerbash
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 镜像的存储位置。如有其他问题,欢迎进一步提问!