【问题标题】:How to make docker instance accessible from the outside network如何使 docker 实例可以从外部网络访问
【发布时间】:2018-04-10 09:23:28
【问题描述】:

感谢您阅读这篇文章。

我有一个 windows7 主机,上面安装了 boot2docker。 通过 boot2docker,我创建了一个 docker jenkins 容器。

现在,在我的 windows7 机器上,我可以通过点击 url http://192.168.99.100:8080 来访问 jenkins 页面 (因为:

  1. 我将“Jenkins”的 8080 端口暴露(发布)到 boot2docker 的 8080。
  2. boot2docker 有一个 ip 192.168.99.100

  3. windows 7 机器有一个 192.168.99.1 连接到 boot2docker。)

我的 windows 7 也在一个更大的公司网络上,并说它被分配了一个 ip: 10.49.33.1.

我的问题是:我应该怎么做才能让 10.49.33.1/16 网络上的主机可以访问 jenkins? (如果您能提供尽可能详细的说明,我将不胜感激。)

谢谢,

【问题讨论】:

  • 如果你觉得这个问题需要改进,而不是仅仅投反对票,请提供建设性的建议,这样至少我会有一些线索以更好的方式提问。谢谢。

标签: docker jenkins networking boot2docker


【解决方案1】:

我找到了解决我问题的缺失部分。

现在我重新考虑一下,我面临的问题可以描述为当主机是windows 7机器时,如何使主机只有ip:port可供外部访问。

现在解决我的问题是“Windows 内置端口转发”。

我需要在我的 windows 7 主机的公共 ip(在本例中:10.49.33.1)上打开一个端口(无论未使用的端口,我将使用 10411 作为示例),然后将所有流量转发到主机 -仅一侧(在本例中为 192.168.99.100:8080)。

1.启动一个cmd.exe 2. 输入以下命令进行端口转发。 netsh interface portproxy add v4tov4 listenport=10411 listenaddress=10.49.33.1 connectport=8080 connectaddress=192.168.99.100 3. 完成。我可以在浏览器中输入 10.49.33.1:10411 并查看我的詹金斯!

要删除端口转发,请使用以下命令: netsh interface portproxy delete v4tov4 listenport=10411 listenaddress=10.49.33.1

【讨论】: