如何访问docker的HyperKit创建的虚拟机?

How to access the VM created by docker's HyperKit?

Docker for Mac uses a Linux VM created by HyperKit 用于在 Mac.

上存储和 运行 个容器

使用 Docker Toolbox,我可以打开 VirtualBox 并访问 docker-machine VM。但是 Docker for Mac,我如何访问 HyperKit 创建的 VM?

2019-01-31更新,感谢ru10的更新,现在有更好的方法了:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

原答案:

一段时间后,我发现以下方法可以获取由 HyperKit 创建的 shell 虚拟机:

运行 来自终端:

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

您将看到一个空白屏幕,然后键入回车,您将收到登录提示。以 root 身份登录并按回车键,您将获得 shell(无密码),您将获得 shell:

要退出会话,请键入 Ctrl-A k(然后 y 进行确认)。

有点老套,但目前看来还可以(2016 年 9 月)(2017 年 9 月)。

Mac OS High Sierra Docker 版本 18.06.0-ce-mac70 (26399)

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

而不是

screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

根据 Docker 维护者 this GitHub issue comment 的说法,推荐的访问 VM 的方法是通过特权 docker 容器。

Try logging into the VM: (I recommend this instead of using screen on the TTY)

$ docker run -it --privileged --pid=host justincormack/nsenter1

事实上,augurar 的答案是 smammy 所说的截至 2021 年唯一有效的答案,其他选项已弃用。

所以:

$ docker run -it --privileged --pid=host justincormack/nsenter1

是正确答案,截至 2021 年 7 月,我在 MacOS Big Sur 中为我工作。