如何访问由Docker的HyperKit创建的VM?


Answers:


142

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

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

原始答案:

一段时间后,我发现了以下方法来获取由HyperKit创建的VM的外壳:

从终端运行:

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

您将看到一个空白屏幕,然后输入Enter, 您将收到一个登录提示。登录为,root然后按Enter,您将获得一个shell(没有密码),您将获得外壳程序:

在此处输入图片说明

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

这有点hacky,但现在似乎可以使用 (2016年9月) 2017年9月)。


1
对我来说这完全是坏事。我可以连接,但是TERM设置或如何通过数据传输存在严重问题。我收到了一个无法正常运行的终端会话,该会话正在丢失数据且格式不正确。我正在尝试更多方法来重置会话,但到目前为止失败了。
格里·格里森

对我来说,它仍然有效(2017年2月1.13.0-beta39使用iterm2终端仿真器)
Jauco '02

1
他们为此需要一个更好的指南。我能够按照您的指示进入虚拟机。以我为例,在第一次按Enter键后,它只是带我进入sh了虚拟机提示。当我ls -l在那条tty路径上运行时,原来在处有指向它的链接/dev/ttys001,这很容易键入。
Spencer Williams

我们可以在该界面上做什么?例如,我无法运行节点,我将其复制到其他地方无效。
伊南克·古姆斯

还是使我能够连接到network_mode = host容器?
伊南克·古姆斯

47

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

4
感谢您更新路径。接受的答案需要对此进行更新。
赛伦

嗯...我~/Library/Containers/com.docker.docker/Data/vms/0/tty在MacOs Catalina和DFD v2.3.0.4中收到“无法执行权限被拒绝”错误,而不是
Demisx

这是由于存在错误: github.com/docker/for-mac/issues/4822
lqbweb

7

根据Docker维护者的GitHub问题评论,推荐的访问VM的方法是通过特权Docker容器。

尝试登录到虚拟机:(我建议这样做,而不要使用TTY上的屏幕)

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

这对我
有用
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.