如何访问docker创建的VM';什么是HyperKit?

如何访问docker创建的VM';什么是HyperKit?,docker,docker-machine,docker-for-mac,Docker,Docker Machine,Docker For Mac,使用由创建的Linux VM在Mac上存储和运行容器 使用Docker Toolbox,我可以打开VirtualBox并访问Docker机器VM。但是有了Docker for Mac,我如何访问HyperKit创建的VM?更新2019-01-31,多亏了ru10的更新,现在有了更好的方法: screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty 原始答案: 过了一会儿,我找到了以下方法来获取HyperKit创建的VM外壳: 从终

使用由创建的Linux VM在Mac上存储和运行容器


使用Docker Toolbox,我可以打开VirtualBox并访问Docker机器VM。但是有了Docker for Mac,我如何访问HyperKit创建的VM?

更新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(无密码),您将获得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/com.docker.driver.amd64-linux/tty
根据Docker维护人员的建议,访问VM的推荐方法是通过特权Docker容器

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


这对我来说是完全失败的。我可以连接,但术语设置或数据传输方式存在严重问题。我得到一个非功能性的终端会话,它正在丢失数据并且格式不正确。我正在尝试更多的方法来重置会话,但到目前为止失败了。对我来说,它仍然有效(2017年2月1.13.0-beta39使用iterm2终端模拟器),他们需要更好的指南。我能够按照你的指示进入虚拟机。在我的例子中,在第一次按enter键之后,我只需要看到一个
sh
提示符,提示VM。当我在
tty
路径上运行
ls-l
时,发现在
/dev/ttys001
上有一个指向它的链接,它更容易键入。我们可以在这个界面上做什么?我无法运行节点。例如,我在其他地方复制了它,但不起作用。这在Docker Desktop 3中不再起作用。感谢更新的路径。接受的答案需要用这个更新。嗯。。。MacOs Catalina和DFD v2.3.0.4中出现“无法执行
~/Library/Containers/com.docker.docker/Data/vms/0/tty
权限被拒绝”错误,这是由于一个错误:这在docker Desktop 3中不再有效。这对我来说是可行的,在Catalina中访问tty没有这应该是2021年接受的答案,因为在Docker Desktop的最新版本中,
tty
链接已经消失。如果您对使用来自未经验证的发布者的随机映像持谨慎态度,这同样有效:
docker run-it--rm--privileged--pid=host busybox nsenter-t1-m-u-i-n
。有时docker守护进程被关闭,您需要VM访问来恢复它。。事实上,到目前为止,这是我的开发中唯一一次需要VM访问的地方。
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
$ docker run -it --privileged --pid=host justincormack/nsenter1