【发布时间】:2020-10-26 09:42:51
【问题描述】:
在 Mac 上,docker 使用 HyperKit 来创建 LinuxKit 虚拟机。这意味着,除其他外,我无法在/var/lib/docker 等位置看到为给定容器下拉的任何图像层,因为 VM 控制着所有这些。
有没有办法让虚拟机上的 shell 能够进行这种内省?
【问题讨论】:
标签: docker docker-desktop
在 Mac 上,docker 使用 HyperKit 来创建 LinuxKit 虚拟机。这意味着,除其他外,我无法在/var/lib/docker 等位置看到为给定容器下拉的任何图像层,因为 VM 控制着所有这些。
有没有办法让虚拟机上的 shell 能够进行这种内省?
【问题讨论】:
标签: docker docker-desktop
在 Docker Desktop 2.4 for Mac 中,可以将几乎完整的终端接入 LinuxKit 虚拟机,并具有健全的选项卡自动完成功能,并能够检查其内容。
例如,要查看下拉的 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 中出现 tab 补全.
【讨论】: