前言之前使用pipework 分配靜態ip是暫時的,重啟之後就會失效,並且使用pipework繫結的ip 物理機,虛擬機器,docker容器的ip都在同一網段,這在生產環境是很困難的,下面使用docker自帶的network實現固定ip分配,並且重啟不會消失。
環境介紹
繫結步驟
先操作192.168.1.105虛擬機器
第一步:建立自定義網路
docker network create --subnet=172.172.0.0/24 docker-br0
備註:這裡選取了172.172.0.0網段,也可以指定其他任意空閒的網段,docker-br0為自定義網橋的名字,可自己任意取名。
注意:這裡子網掩碼要使用255.255.255.0也就是ip後面的那個24,因為後面要使用iptables配置路由表,我之前使用255.255.0.0 無法配置.所以這裡配置成24.
建立網橋之後,使用ifconfig檢視 會多出乙個網橋,該網橋在docker啟動或者重啟之後,會自動顯示出來。
永久的,可以使用docker network rm docker-br0 移除網橋。
備註:建立容器時,在第一步建立的網段中選取了172.172.0.10作為靜態ip位址。並且以docker-br0網橋啟動. -v是掛載,表示需要將本地哪個目錄掛載到容器中。3bee3060bfc8是映象id
第三步:測試本機和容器是否ping通
跨主機容器互訪
第四步:在192.168.1.106虛擬機器上,給容器繫結固定ip, 按照之前 第一步到 第三步.
第五步:在兩個容器中互相訪問,發現跨主機容器互訪,並不能ping通。
第六步:配置路由表
#新增路由規則
ip route add 對方容器所在的ip網段/子網掩碼 via 對方虛擬機器ip dev 通過哪個網**信
如: ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736
新增完成之後,可以使用 route命令 檢視新增之後的規則,也可以使用 ip route del 172.172.1.0/24 移除路由規則
在192.168.1.105 和 192.168.1.106虛擬機器上,分別新增對應的路由規則!
192.168.1.105: ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736
192.168.1.106: ip route add 172.172.0.0/24 via 192.168.1.105 dev eno16777736
第七步:在兩個容器中互相訪問,發現可以實現跨主機容器互相ping通了。
docker固定IP容器構造
基於centos7安裝docker不需要使用amaza的repo,直接就可使用shell命令 1.安裝docker yum install docker io y ps 在centos6.5上可能會出現這樣的錯誤 warn 0000 you are running linux kernel vers...
Docker容器固定IP分配
我們在使用docker run 建立docker 容器時,可以用 net 選項指定容器的網路模式,docker 有以下4 種網路模式 host模式,使用 net host 指定。container模式,使用 net container name or id 指定。none模式,使用 net none...
Docker容器固定IP分配
我們在使用docker run 建立docker 容器時,可以用 net 選項指定容器的網路模式,docker 有以下4 種網路模式 host模式,使用 net host 指定。container模式,使用 net container name or id 指定。none模式,使用 net none...