Docker for Mac使用HyperKit创建的 Linux VM在 Mac 上存储和运行容器。
使用 Docker Toolbox,我可以打开 VirtualBox 并访问 docker-machine 虚拟机。但是使用 Docker for Mac,我如何访问由 HyperKit 创建的 VM?
Docker for Mac使用HyperKit创建的 Linux VM在 Mac 上存储和运行容器。
使用 Docker Toolbox,我可以打开 VirtualBox 并访问 docker-machine 虚拟机。但是使用 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
并回车,您将获得一个外壳(无密码)
要退出会话,请键入Ctrl-A k
(然后y
确认)。
这有点hacky,但它现在似乎工作(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 维护者的这个 GitHub 问题评论,访问 VM 的推荐方法是通过特权 docker 容器。
尝试登录虚拟机:(我建议这样做而不是在 TTY 上使用屏幕)
$ docker run -it --privileged --pid=host justincormack/nsenter1
事实上,正如smammy所说,从 2021 年起,来自augurar的答案是唯一有效的,其他选项已被弃用。
所以:
$ docker run -it --privileged --pid=host justincormack/nsenter1
是正确的答案,并且截至 2021 年 7 月在 MacOS Big Sur 中为我工作。