標籤:docker
前文說明:
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服務
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/8A/A6/wKiom1g2XVjxyPkTAAAeOnaGH_k762.png" title="圖片1.png" alt="wKiom1g2XVjxyPkTAAAeOnaGH_k762.png" />
在docker中部署一個外部服務以供訪問,並建立一個簡單索引頁
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/8A/A6/wKiom1g2XUix-QKQAAAM3cSBR3o567.png" title="圖片2.png" alt="wKiom1g2XUix-QKQAAAM3cSBR3o567.png" />
二、採用vmware內建的虛擬網路編輯器實現外部網路訪問虛擬機器內的服務
1.點擊”編輯“->”虛擬網路編輯器“,
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/8A/A2/wKioL1g2XWTzwbcbAAD7iJjMHMY460.png" title="圖片3.png" alt="wKioL1g2XWTzwbcbAAD7iJjMHMY460.png" />
2.選擇”NAT“,然後點擊”NAT設定“,。
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/8A/A6/wKiom1g2XXTSB6nNAACzQMOSgt0227.png" title="圖片4.png" alt="wKiom1g2XXTSB6nNAACzQMOSgt0227.png" />
3.接下來點擊”添加“,讓訪問主機的8004連接埠映射到虛擬機器裡8003連接埠。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/8A/A2/wKioL1g2XYCSFb8mAABx-hVoV7Y482.png" title="圖片5.png" alt="wKioL1g2XYCSFb8mAABx-hVoV7Y482.png" />
4.在彈出來的介面中分別填入主機連接埠,虛擬機器IP,虛擬機器連接埠,
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/8A/A6/wKiom1g2XY7A5eIUAAA_MWpOJS4513.png" title="圖片6.png" alt="wKiom1g2XY7A5eIUAAA_MWpOJS4513.png" />
5.確定後,我們就將虛擬機器中的80號連接埠映射到宿主機的8086號連接埠了。可以外部網路測試了,選擇和主機同一層的其他機器做測試就可以了。
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/8A/A2/wKioL1g2XZ7CO6PsAABL4S9OUTI733.png" title="圖片7.png" alt="wKioL1g2XZ7CO6PsAABL4S9OUTI733.png" />
6.測試通過!
註:如果以上步驟操作還是不能訪問,考慮一下防火牆的問題,可以在防火牆入口規則裡開放8004連接埠,這裡為了便於測試我把防火牆關掉了。
本文出自 “7286083” 部落格,請務必保留此出處http://7296083.blog.51cto.com/7286083/1876077
外部網路通過連接埠映射訪問部署在虛擬機器裡的docker中的web應用