我如何连接到 mac 上的 docker 桌面虚拟 machine? (docker 桌面版本 2.4)

How may I connect to a docker desktop virtual machine on mac? (docker desktop version 2.4)

在 mac 上,docker 使用 HyperKit 创建 LinuxKit VM。这意味着,例如,除其他外,我无法在 /var/lib/docker 等位置看到为给定容器下拉的任何图像层,因为 VM 控制所有这些。

有没有办法在该 VM 上实际获得 shell 以便能够进行这种自省?

在 Docker Desktop 2.4 for Mac 中,可以将一个几乎完整的终端进入 LinuxKit VM,使用合理的选项卡 auto-completion,并能够检查其内容.

例如,要查看下拉 docker 图片的图层,您可以执行以下命令:

$ stty -echo -icanon && nc -U ~/Library/Containers/com.docker.docker/Data/debug-shell.sock && stty sane
/ # ls -al /var/lib/docker/overlay2/

nc -U ~/Library/Containers/com.docker.docker/Data/debug-shell.sock 本身可能是 运行,per the Docker release docs,但如果不按照上面的示例与 stty 组合,您将看不到太多良好的输出,您也不会在 vm 中完成制表符。