如何使 docker 实例可从外部网络访问

How to make docker instance accessible from the outside network

感谢阅读 post。

我有一个 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. windows7 机器有一个 192.168.99.1 连接到 boot2docker。)

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

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

谢谢,

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

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

现在解决我的问题的是 "windows built-in port forwarding".

我需要在我的windows 7的public ip(本例中为10.49.33.1)开一个端口(随便什么未使用的端口,我以10411为例)主机,然后将所有流量转发到 host-only 端(在本例中为 192.168.99.100:8080)。

1. 启动一个 cmd.exe 2. 键入以下命令执行端口转发。 netsh 接口端口代理添加 v4tov4 listenport=10411 listenaddress=10.49.33.1 connectport=8080 connectaddress=192.168.99.100 3. 完成。我可以在浏览器中输入 10.49.33.1:10411 并查看我的 jenkins!

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