Docker – 主机上的代理容器端口
我有一台运行在我的Windows机器上的Ubuntu虚拟机(我使用Vagrant和VirtualBox)。 我在虚拟机中运行两个docker容器,一个是另一个数据库,另一个是web服务器。 我想通过主机代理Web容器,以便可以从Windows机器浏览Web容器。
docker工帮忙吗?还是我需要VM上的HAProxy?
有不同的方法来实现这一点。
让我们假设你在你的Docker主机上运行以下容器:
docker run -d -p 80:80 tutum/hello-world
-p
选项告诉Docker在Docker主机上打开端口80
,并将stream量转发到Docker容器的端口80
。
通过将静态IP分配给您的Vagrant框
在您的Vagrantfile中 ,您可以通过添加以下内容将固定IP分配给您的Vagrant框:
config.vm.network "private_network", ip: "176.16.0.3"
然后从Windows打开http://176.16.0.3/
通过转发您的stream浪者箱中的端口
如果您不想将一个固定的IP地址分配给您的Vagrant框,您可以将Ubuntu端口的80端口转发到Vagrant主机(Windows机器)的80端口。
在你的Vagrantfile中 ,放
config.vm.network "forwarded_port", guest: 80, host: 80
现在,从Windows机器上,您可以通过http:// localhost /访问Web服务器。
其他的考虑
请注意,在您的Docker容器中,您的Web服务器必须接受来自外部的连接。 换句话说,您需要绑定到特殊的0.0.0.0
networking接口,而不仅仅是localhost
或127.0.0.1
。