微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mac 上的 Docker 桌面问题与 ssh 到本地主机上的 centos 容器 如何启用 ssh如何ping

如何解决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 举报,一经查实,本站将立刻删除。