Mac下Docker容器数据存储及/var/lib/docker路径问询
Mac环境下Docker数据的实际存储路径说明
Docker Desktop在macOS平台的运行逻辑和Linux原生环境有本质区别,不存在直接基于Mac宿主机内核运行的Docker守护进程。
- 所有Docker相关的服务运行时、镜像存储、容器可写层数据,全部托管在Docker Desktop自动启动的轻量级LinuxKit迷你虚拟机内部
- 执行
docker inspect <容器ID>时看到的所有指向/var/lib/docker的路径,都是这个虚拟机内部的文件系统路径,既不会映射到Mac宿主机的常规目录结构下,也和Docker容器自身的文件系统路径无关。这也是为什么在Mac宿主机终端、甚至容器内部执行目录遍历,都找不到/var/lib/docker对应实体的核心原因。
宿主机端的实际物理存储位置
这个迷你虚拟机的全部数据,最终会以可自动扩容的虚拟磁盘镜像文件形式保存在Mac本地磁盘上,根据Mac的芯片架构不同,实际物理存储路径有区别:
- Intel芯片Mac:虚拟磁盘镜像为
~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw - Apple Silicon(M系列)芯片Mac:虚拟磁盘镜像存放在
~/.docker/run/docker-desktop-vm-data/目录下,由Docker Desktop统一调度管理
直接访问Docker内部存储目录的方法
如果需要直接查看虚拟机内部/var/lib/docker下的存储内容,可以通过特权容器进入虚拟机的内核命名空间操作:
执行命令:
docker run -it --privileged --pid=host justincormack/nsenter1
进入对应环境后,即可直接浏览虚拟机内/var/lib/docker下的镜像、容器、数据卷等所有存储目录。
注意事项
- 不要手动修改宿主机上的虚拟磁盘镜像文件,极易触发Docker数据损坏、容器或镜像丢失的问题
- 做持久化存储时,优先使用Docker命名卷或者绑定挂载的方式,不要直接依赖虚拟机内部
/var/lib/docker的原生路径做跨环境数据迁移
内容的提问来源于stack exchange,提问作者Luk Aron
相关产品推荐
相关产品推荐

