【发布时间】:2017-02-05 23:09:24
【问题描述】:
Docker for Mac 使用HyperKit 创建的 Linux VM 在 Mac 上存储和运行容器。
使用 Docker Toolbox,我可以打开 VirtualBox 并访问 docker-machine 虚拟机。但是使用 Docker for Mac,如何访问由 HyperKit 创建的 VM?
【问题讨论】:
标签: docker docker-machine docker-for-mac
Docker for Mac 使用HyperKit 创建的 Linux VM 在 Mac 上存储和运行容器。
使用 Docker Toolbox,我可以打开 VirtualBox 并访问 docker-machine 虚拟机。但是使用 Docker for Mac,如何访问由 HyperKit 创建的 VM?
【问题讨论】:
标签: docker docker-machine docker-for-mac
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
你会看到一个空白的屏幕,然后输入回车,你会得到一个登录提示。以,你会得到一个shell:root登录并回车,你会得到一个shell(无密码)
要退出会话,请输入 Ctrl-A k(然后输入 y 进行确认)。
这有点老套,但现在似乎可以使用 (2016 年 9 月)(2017 年 9 月)。
【讨论】:
sh 提示符。当我在tty 路径上运行ls -l 时,发现/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 Permission denied”错误
根据 Docker 维护者this GitHub issue comment 的说法,访问 VM 的推荐方法是通过特权 docker 容器。
尝试登录虚拟机:(我建议这样做而不是在 TTY 上使用屏幕)
$ docker run -it --privileged --pid=host justincormack/nsenter1
【讨论】:
tty 链接已经消失。如果您对使用来自未经验证的发布者的随机图片持怀疑态度,这也可以:docker run -it --rm --privileged --pid=host busybox nsenter -t1 -m -u -i -n。
事实上,augurar 的答案是 smammy 所说的截至 2021 年唯一有效的答案,其他选项已弃用。
所以:
$ docker run -it --privileged --pid=host justincormack/nsenter1
是正确的答案,截至 2021 年 7 月,我在 MacOS Big Sur 中为我工作。
【讨论】: