(為容器分配獨立IP方法二)通過虛擬IP實現docker宿主機增加對外IP接口


虛擬IP。何為虛擬IP,就是一個未分配給真實主機的IP,也就是說對外提供數據庫服務器的主機除了有一個真實IP外還有一個虛IP,使用這兩個IP中的任意一個都可以連接到這台主機,所有項目中數據庫鏈接一項配置的都是這個虛IP,當服務器發生故障無法對外提供服務時,動態將這個虛IP切換到備用主機。

虛擬IP原理:http://blog.csdn.net/whycold/article/details/11898249
 
 
通過虛擬IP,我們可以虛擬化的增加docker宿主機的對外IP,通過對外不同IP來實現不同的接入服務。讓我們看下面的例子:
1,查看當前網卡設備eth0並創建新的網卡設備eht0:1
ech0詳細內容:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
內容如下:
DEVICE=eth0 
HWADDR=00:0c:29:ae:d2:2b 
TYPE=Ethernet UUID=d3015c96-42e0-483b-81d5-e4b05a384fbe 
ONBOOT=yes 
NM_CONTROLLED=yes 
BOOTPROTO=static 
IPADDR=192.168.1.10 
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1 
DNS1=192.168.1.1
 
創建虛擬網卡設備eth0:1:
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1
修改eth0:1設置IP192.168.1.11:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
內容如下:
DEVICE=eth0:1 
HWADDR=00:0c:29:ae:d2:2b 
TYPE=Ethernet UUID=d3015c96-42e0-483b-81d5-e4b05a384fbe 
ONBOOT=yes 
NM_CONTROLLED=yes 
BOOTPROTO=static 
IPADDR=192.168.1.11
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1 
注意:eth0:1的DEVICE必須為eth0:1 ,表示通過eth0連接.且它們的設備mac需要一致
 
2.啟動虛擬IP的網卡設備: 
# ifup eth0:1
此時通過ifconfig可以查看到eth0,eth0:1兩個網卡設備,並且IP為 192.168.1.10、192.168.1.11
 
3.運行容器指定映射IP和端口:
查看當前docker 鏡像
# docker images
REPOSITORY TAG IMAGE   ID CREATED VIRTUAL SIZE
centos latest 34943839435d 3 weeks ago 224 MB
通過鏡像運行容器
# docker run -d -p 192.168.1.11:80:80 centos
此時就可以通過192.168.1.11這個IP的80端口訪問容器centos了
#docker ps -a
(為容器分配獨立IP方法二)通過虛擬IP實現docker宿主機增加對外IP接口
而192.168.1.10這個IP的80端口是訪問不到的這個容器的,這樣我們就相當於又可以在192.168.1.10的IP上80端口訪問其他新增的容器了
 
 
 
特別注意:
1.使用虛擬IP的話,在任何-p映射中不要使用 -p 0.0.0.0:80:80 或者 -p 80:80,這樣會占用有IP的80端口
2.修改虛擬網卡配置時,請先ifdown eht0:x,修改完后ifup eth0:x
3.刪除虛擬網卡設備文件請先進行ifdown eth0:X ,再刪除eth0:X網卡設備文件,但不建議這么做。最好的方法是不要刪除虛擬網卡設備文件,編輯多余不用的網卡設備文件,保留BOOTPROTO,HWADDROOT和ONBOOT這三項其他注釋即可。
4.無論刪除,或編輯網卡,之后請不要使用service network restart,否者會出現斷網,需reboot重啟恢復
5.關於容器因虛擬IP操作不當仍不能連網,請停止所有容器,ifdown所有虛擬網卡設備,再ifup,然后啟動容器即可恢復。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM