如何在 Mac 上连接到 docker 桌面虚拟机?(docker桌面版2.4)

zea*_*ker 2 docker docker-desktop

在 Mac 上,docker 使用 HyperKit 来创建 LinuxKit VM。这意味着,除其他外,我看不到在诸如 之类的地方为给定容器下拉的任何图像层/var/lib/docker,因为虚拟机控制着所有这些。

有没有办法真正在该虚拟机上获得一个 shell,以便能够进行这种内省?

zea*_*ker 6

在 Mac 版 Docker Desktop 2.4 中,可以将几乎完整的终端引入 LinuxKit VM,并具有正常的选项卡自动完成功能,并能够检查其内容。

例如,要查看下拉的 docker 镜像的层数,您可以执行以下命令:

$ stty -echo -icanon && nc -U ~/Library/Containers/com.docker.docker/Data/debug-shell.sock && stty sane
/ # ls -al /var/lib/docker/overlay2/
Run Code Online (Sandbox Code Playgroud)

根据 Docker 版本文档,它nc -U ~/Library/Containers/com.docker.docker/Data/debug-shell.sock可能会单独运行,但如果不与上面的示例结合使用,您将看不到非常好的输出,也不会在虚拟机中进行制表符补全。stty