在 Mac 上,docker 使用 HyperKit 来创建 LinuxKit VM。这意味着,例如,除其他外,我无法在 /var/lib/docker
等位置看到为给定容器下拉的任何图像层,因为 VM 控制所有那个。
有没有办法在该 VM 上实际获得一个 shell 以便能够进行这种自省(introspection)?
最佳答案
在适用于 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/
nc -U ~/Library/Containers/com.docker.docker/Data/debug-shell.sock
可以自行运行,per the Docker release docs , 但如果它没有按照上面的示例与 stty
结合使用,您将不会看到很好的输出,也不会在 vm 中完成制表符。
关于docker - 我如何连接到 mac 上的 docker 桌面虚拟机? (docker 桌面版本 2.4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64530530/