如何访问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 中为我工作。
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
您将看到一个空白屏幕,然后键入回车,您将收到登录提示。以 ,您将获得 shell:root
身份登录并按回车键,您将获得 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 中为我工作。