如何解决Mac 上的 Docker 桌面问题与 ssh 到本地主机上的 centos 容器 如何启用 ssh如何ping
我知道 SO 上也有类似的问题,但许多建议对我不起作用。我正在运行 Docker Desktop for Mac,我启动了一个我构建的 docker 容器,该容器配置并运行了 ssh(我使用这些容器连接到 AWS、Azure 等)。我用类似的东西启动容器(ubc/jlbase/jlbase 镜像有 ssh 配置......以下所有内容都适用于具有 docker0 网络的 linux 机器)
docker run -P --name test -d ubc/jlbase/jlbase
docker inspect test |grep IP
ping -c *the_ip_from_above*
未连接。据我所知,这是 Mac 上 Docker 的一个已知问题……但我找到的帮助和链接似乎并没有解决问题。有人能告诉我我错过了什么吗?
解决方法
你可以说这是 Docker 在 Mac 上的一个已知特性,而不是一个问题。 Mac 上的 Docker 运行在 macOS 内部的虚拟机上,因此您收到的 IP 地址是 VM 内部容器的 IP,而不是 macOS。
解决问题中的两个问题:
如何启用 ssh
为了能够在您的容器上ssh
,您需要在容器中运行 sshd
并发布端口 22
。检查 here 以了解如何使用已准备好的容器尝试此操作
如何ping
由于 docker 在 VM 内运行,为了能够将流量路由到容器,您需要设置网络层来路由流量。一种方法是在 VM 和机器之间创建隧道。
这是更复杂的设置,需要 CNF(Conteinerized Network Function)的帮助。为这个问题创建的最简单的 CNF 之一是 soctun,它在主机和 docker 网络层之间创建了一个隧道。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。