Docker for Mac使用HyperKit创建的Linux VM在Mac上存储和运行容器。
使用Docker Toolbox,我可以打开VirtualBox并访问docker-machine VM。但是,使用Mac的Docker,如何访问HyperKit创建的VM?
Docker for Mac使用HyperKit创建的Linux VM在Mac上存储和运行容器。
使用Docker Toolbox,我可以打开VirtualBox并访问docker-machine VM。但是,使用Mac的Docker,如何访问HyperKit创建的VM?
Answers:
更新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月)。
sh
了虚拟机提示。当我ls -l
在那条tty
路径上运行时,原来在处有指向它的链接/dev/ttys001
,这很容易键入。
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
~/Library/Containers/com.docker.docker/Data/vms/0/tty
在MacOs Catalina和DFD v2.3.0.4中收到“无法执行权限被拒绝”错误,而不是
根据Docker维护者的GitHub问题评论,推荐的访问VM的方法是通过特权Docker容器。
尝试登录到虚拟机:(我建议这样做,而不要使用TTY上的屏幕)
$ docker run -it --privileged --pid=host justincormack/nsenter1