外部网络通过端口映射访问部署在虚拟机里的docker中的web应用
前文说明: Windows主机IP:10.100.70.135 Linux虚拟机 IP:192.168.233.129 Docker容器 IP:172.17.0.11 为方便测试使用,通常我们选择在windows主机中安装虚拟机这(这里选的是VMware workstation),在虚拟机中部署docker容器。而我们部署在docker中的容器外部网络(和windows同一层的网络)是无法访问的。 为了解决这个问题,可以采用一下这种方案。 一、创建容器时可以选择docker自带的端口映射功能能够跨网络实现172.17.0.11与192.168.233.129的通信。参考命令如下,docker的其他使用方法这里不再赘述 docker run -it -p 8003:80 --name nginx1 cariden/centos6.7 /bin/bash 这里我们可以通过访问192.168.233.129的8003端口映射到172.17.0.11的80端口,也就是可以直接访问nginx服务 在docker中部署一个外部服务以供访问,并创建一个简单索引页 二、采用vmware自带的虚拟网络编辑器实现外部网络访问虚拟机内的服务 1.点击”编辑“->”虚拟网络编辑器“,如图 2.选择”NAT“,然后点击”NAT设置“,如图。 3.接下来点击”添加“,让访问主机的8004端口映射到虚拟机里8003端口。 4.在弹出来的界面中分别填入主机端口,虚拟机IP,虚拟机端口,如图 5.确定后,我们就将虚拟机中的80号端口映射到宿主机的8086号端口了。可以外部网络测试了,选择和主机同一层的其他机器做测试就可以了。 6.测试通过! 注:如果以上步骤操作还是不能访问,考虑一下防火墙的问题,可以在防火墙入口规则里开放8004端口,这里为了便于测试我把防火墙关掉了。 本文转自 青苗飞扬 51CTO博客,原文链接:http://blog.51cto.com/qingmiao/1876077