将在 Ubuntu VM 内运行的 docker 容器端口与 VM 的主机网络连接 [关闭]

Posted

技术标签:

【中文标题】将在 Ubuntu VM 内运行的 docker 容器端口与 VM 的主机网络连接 [关闭]【英文标题】:Connect a docker's container port that is running inside an Ubuntu VM, with the VM's host machine network [closed] 【发布时间】:2020-08-05 19:40:01 【问题描述】:

我有一个在 Windows PC 上托管的 Ubuntu-18.04 映像 (VMWare Player) 中运行的 Docker。 Docker 有一个 Gitlab 容器,我可以从我的虚拟机通过 localhost:4000 访问它。问题是如何从我的 Windows PC 访问相同的 Gitlab 实例?据我了解,我需要连接两层。第一个是带有 VM 主机的 Docker,第二个是带有 Windows 主机的 VM 主机。我尝试在 Windows 主机和虚拟机之间创建桥接连接,但无法正常工作。如果可能,请提供详细的答案和步骤。

【问题讨论】:

【参考方案1】:

感谢PanosMR,问题解决了。

我的解决方案是将 VM 网络设置为仅限主机。然后为虚拟机分配一个子网 IP,如 192.168.42.0,掩码如 255.255.255.0

之后我去查看我的虚拟机分配到了哪个 IP。 IP 是192.128.42.128。然后在我的 Ubuntu VM 内的 docker 上,我将 Gitlab 容器 --publish IP 设置为同一个 VM 的 IP 和端口。

例如--publish 192.168.42.128:4000:80 和繁荣!当 Gitlab 容器启动时,我可以通过我的 Windows PC 访问该 IP。

这是我见过的最简单的解决方案,也是唯一合法的解决方案。

【讨论】:

【参考方案2】:

如果我没记错的话,Virtualbox 有一个设置屏幕来配置端口转发。用谷歌搜索一下。

【讨论】:

抱歉,我运行的不是 VB,而是 VMWare Player。我确实尝试了端口转发,但我仍然无法访问 VMWare 上的 gitlab。 您检查过 Windows 防火墙吗? 我的防火墙因此而关闭。只是为了检查它是否有问题。我创建的规则还允许此端口“从”和“到”以防万一。 您可能需要尝试更改 vm 网络配置:尝试 NAT 或桥接接口。祝你好运。 vm ip 也不是 127.0.0.1。检查ip。 我知道这一切。这就是为什么我发布一个问题并询问详细步骤的原因。谢谢。

以上是关于将在 Ubuntu VM 内运行的 docker 容器端口与 VM 的主机网络连接 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Ubuntu docker 映像不是 VM [重复]

Docker运行ubuntu22.04出现异常

Docker运行ubuntu22.04出现异常

Docker运行ubuntu22.04出现异常

Docker For Lua

cron 作业未在 ubuntu 上的 docker 容器内运行