MacBook上Docker目录位置查询:为何不在/var/lib/docker下?
MacBook上Docker文件夹的查找方法及路径差异原因
这是个非常常见的疑问,毕竟Mac上的Docker运行机制和Linux原生环境有不小的区别~
一、如何找到Mac上的Docker相关文件夹
1. 通过Docker Desktop UI查看磁盘镜像位置
打开Docker Desktop后,点击右上角的齿轮图标进入设置界面,依次选择「Resources」→「Advanced」,在页面里就能看到Disk image location,默认路径是:
~/Library/Containers/com.docker.docker/Data/vms/0/data/docker.raw
这个文件是Docker所依赖的Linux虚拟机的磁盘镜像,里面包含了所有镜像、容器、卷等数据(对应虚拟机内部的/var/lib/docker目录)。
2. 进入Linux虚拟机查看原生/var/lib/docker
如果想直接查看虚拟机内部的/var/lib/docker目录,可以在终端执行以下命令:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
执行后会进入虚拟机的控制台,默认用户名是root(无需密码),此时你就能看到熟悉的/var/lib/docker路径了。
退出screen会话的方法:先按
Ctrl+A,再按D(后台保留会话);如果要彻底关闭会话,按Ctrl+A后按K,再输入y确认。
二、为什么Mac上看不到/var/lib/docker
原因很简单:Docker的核心组件(比如dockerd、容器运行时)是基于Linux内核开发的,而Mac使用的是Darwin内核,无法直接运行这些组件。所以Docker Desktop在Mac上会自动启动一个轻量级的Linux虚拟机(现在默认用HyperKit实现),所有Docker相关的数据都存储在这个虚拟机的文件系统里,而Mac本地的/var/lib/目录属于宿主系统,自然找不到docker文件夹——这个路径只存在于虚拟机内部。
内容的提问来源于stack exchange,提问作者Leem.fin




