Docker繫結固定IP/跨主機容器互訪
前言
之前使用pipework 分配靜態ip是暫時的,重啟之後就會失效,並且使用pipework繫結的ip 物理機,虛擬機器,docker容器的ip都在同一網段,這在生產環境是很困難的,下面使用docker自帶的network實現固定ip分配,並且重啟不會消失。
環境介紹
伺服器IP | 容器分配網段 | 啟動容器的ID |
192.168.1.105 | 172.172.0.0/24 | 172.172.0.10 |
192.168.1.106 | 172.172.1.0/24 | 172.172.1.10 |
繫結步驟
先操作192.168.1.105虛擬機器
第一步:建立自定義網路
docker network create --subnet=172.172.0.0/24 docker-br0
注意:這裡子網掩碼要使用255.255.255.0也就是IP後面的那個24,因為後面要使用iptables配置路由表,我之前使用255.255.0.0 無法配置.所以這裡配置成24.
建立網橋之後,使用ifconfig檢視 會多出一個網橋,該網橋在docker啟動或者重啟之後,會自動顯示出來。永久的,可以使用docker network rm docker-br0 移除網橋。
第二步:在你自定義的網段選取任意IP地址作為你要啟動容器IP
docker run -i -d --net docker-br0 --ip 172.172.0.10 --name nginx -v /usr/local/software/:/mnt/software/ 3bee3060bfc8 /bin/bash
使用docker exec -it nginx /bin/bash 進入已啟動的容器,使用 yum install net-tools 下載 iptables 然後使用ifconfig檢視容器ip
第三步:測試本機和容器是否ping通
#測試ping 百度
[[email protected] /]# ping www.baidu.com
PING www.a.shifen.com (119.75.213.61) 56(84) bytes of data.
64 bytes from 119.75.213.61 (119.75.213.61): icmp_seq=1 ttl=56 time=10.1 ms
64 bytes from 119.75.213.61 (119.75.213.61): icmp_seq=2 ttl=56 time=8.26 ms
#測試宿主機
[ [email protected] /]# ping 192.168.1.105
PING 192.168.1.105 (192.168.1.105) 56(84) bytes of data.
64 bytes from 192.168.1.105: icmp_seq=1 ttl=64 time=0.099 ms
64 bytes from 192.168.1.105: icmp_seq=2 ttl=64 time=0.081 ms
#測試ping另一臺虛擬機器
[[email protected] /]# ping 192.168.1.106
PING 192.168.1.106 (192.168.1.106) 56(84) bytes of data.
64 bytes from 192.168.1.106: icmp_seq=1 ttl=63 time=1.67 ms
64 bytes from 192.168.1.106: icmp_seq=2 ttl=63 time=0.587 ms
到此給容器繫結固定ip 已完成,下面是 容器跨主機互相訪問。跨主機容器互訪
第四步:在192.168.1.106虛擬機器上,給容器繫結固定ip, 按照之前 第一步到 第三步.
第五步:在兩個容器中互相訪問,發現跨主機容器互訪,並不能ping通。
[[email protected] /]# ping 172.172.1.10
PING 172.172.1.10 (172.172.1.10) 56(84) bytes of data.
From 192.168.1.105 icmp_seq=1 Destination Host Unreachable
From 192.168.1.105 icmp_seq=2 Destination Host Unreachable
From 192.168.1.105 icmp_seq=3 Destination Host Unreachable
[[email protected] /]# ping 172.172.0.10
PING 172.172.0.10 (172.172.0.10) 56(84) bytes of data.
From 192.168.1.106 icmp_seq=1 Destination Host Unreachable
From 192.168.1.106 icmp_seq=2 Destination Host Unreachable
From 192.168.1.106 icmp_seq=3 Destination Host Unreachable
第六步:配置路由表
#新增路由規則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通了。
[[email protected] /]# ping 172.172.1.10
PING 172.172.1.10 (172.172.1.10) 56(84) bytes of data.
64 bytes from 172.172.1.10: icmp_seq=1 ttl=62 time=0.636 ms
64 bytes from 172.172.1.10: icmp_seq=2 ttl=62 time=0.411 ms
64 bytes from 172.172.1.10: icmp_seq=3 ttl=62 time=0.472 ms
[[email protected] /]# ping 172.172.0.10
PING 172.172.0.10 (172.172.0.10) 56(84) bytes of data.
64 bytes from 172.172.0.10: icmp_seq=1 ttl=62 time=0.920 ms
64 bytes from 172.172.0.10: icmp_seq=2 ttl=62 time=0.674 ms
64 bytes from 172.172.0.10: icmp_seq=3 ttl=62 time=0.657 ms
相關推薦
Docker繫結固定IP/跨主機容器互訪
前言 之前使用pipework 分配靜態ip是暫時的,重啟之後就會失效,並且使用pipework繫結的ip 物理機,虛擬機器,docker容器的ip都在同一網段,這在生產環境是很困難的,下面使用docker自帶的network實現固定ip分配,並且重啟不會消失。 環境介紹
Docker學習筆記 — Weave實現跨主機容器互聯
Docker的原生網路支援非常有限,且沒有跨主機的叢集網路方案。目前實現Docker網路的開源方案有Weave、Kubernetes、Flannel、Pipework以及SocketPlane等,其中Weave被評價為目前最靠譜的,那麼這裡就對Weave的基本原
實戰案例:構建docker容器集群 (解決方案一:使用自定義網橋連接跨主機容器)
docker一、實驗環境虛擬機a兩塊網卡 eth0 eth1 (IP地址static或者dhcp)虛擬機b兩塊網卡 eth0 eth1 (IP地址static或者dhcp)二、在兩臺虛擬機上配置網橋虛擬機a操作:apt-get install bridge-utilsvim /etc/ne
利用iptables給Docker繫結一個外網IP
背景 由於docker預設是不能夠與外部進行直接的通訊,比較普遍的彷彿是利用啟動時-p來與主機進行埠對映與外界溝通。但是有時候在有其他需求時並不太方便,特別是在進行一些docker打包之前的內部開發時,希望其能夠像虛機一樣能夠與外部有很好的通訊,便希望其能夠繫
華為雲--利用雲主機做SNAT,實現同子網其他未繫結公網IP主機上網
環境介紹:Centos6.9雲主機一臺,主網絡卡繫結公網IP,副網絡卡未繫結公網IP,副網絡卡和後端主機在同一子網。 代理主機主網絡卡IP:192.168.11.60 所在子網網段:192.168.11.0/24 閘道器:192.168.11.1 代理主機副網絡卡
Docker:跨主機容器間通信之overlay [十五]
boot mes ports usr unable network oot tcp 解決方案 一、配置overlay類型網絡準備工作 1、在luoahong3主機上 docker run -d -p 8500:8500 -h consul --name consul pr
Docker設置固定ip地址
自定義 esp idg err -i creat 橋接 response drive Docker安裝後,默認會創建下面三種網絡類型: $ docker network ls NETWORK ID NAME DRIVER SCOPE 978
跨主機容器間通訊解決方案
ping不通 端口 str mage 跨主機 fff 分享 技術 測試結果 1.docker集群間容器是否可以通信。 創建容器服務來測試:docker service create --name tomcat1 --replicas 2 192.168.56.200:500
docker中設定固定IP
Docker安裝後,預設會建立下面三種網路型別 $ docker network ls NETWORK ID NAME DRIVER SCOPE 9781b1f585ae bridge bridge local 1252da701e
docker之 網路模式和跨主機通訊
Docker的四種網路模式Bridge模式 當Docker程序啟動時,會在主機上建立一個名為docker0... Docker的四種網路模式 Bridge模式 當Docker程序啟動時,會在主機上建立一個名為docker0的虛擬網橋,此主機上啟動的Docker容器會連線到這個虛擬網橋上。虛擬網橋
跨主機容器網路方案
跨主機容器網路方案 在Kubernetes體系中,Kubernetes網路模型設計的一個基本原則:每個Pod都擁有一個獨立的IP地址,而且假定所有的Pod都在一個可以直接聯通的、扁平的網路空間中,不管他們是否執行在同一個Node(宿主機)中,都可以直接通過對方的IP進行訪問。也就是說
將域名繫結到ip上,並實現訪問不同二級子域名對應不同目錄
一、將域名繫結到ip上1、環境介紹:阿里雲伺服器ESC(美國矽谷)2、購買域名3、備案注:由於我買的是美國地區伺服器,所以不用備案,如果買的國內伺服器,這裡需要新增一個備案操作。4、域名實名認證5、將域名繫結到雲伺服器公網ip5.1、對購買的域名進行解析(點選解析按鈕)5.2
Centos系統的單網絡卡繫結雙ip的設定
單個網絡卡,一個公網,一個內網ip的設定,可以參考下面的例子。OS Version: Centos 6.X Ethernet example:[[email protected] network-scripts]# pwd/etc/sysconfig/network-scripts[[email
Elasticsearch-6.5.3 在Centos7,Linux 虛擬機器環境下,設定繫結的IP地址
問題背景: Elasticsearch在Linux環境下安裝很簡單,只需要在官網下載相應的tar.gz壓縮包,並使用 Linux下的解壓命令,即可。解壓完成後,可以進入該目錄下,使用./bin/elasticsearch 命令來檢測是否成功啟動elasticsearch服務。這個很簡單,具體
一分鐘看懂Docker的網路模式和跨主機通訊
文章轉載自:http://www.a-site.cn/article/169899.html Docker的四種網路模式Bridge模式當Docker程序啟動時,會在主機上建立一個名為docker0...Docker的四種網路模式Bridge模式當Docker程序啟動時,會在主機上建立一個名為dock
Tomcat繫結具體IP
現在伺服器多是多網絡卡伺服器,可以搭建多個不同的Tomcat應用例項共享伺服器配置。 如果希望多個Tomcat應用伺服器能夠都使用80埠的話,需要對Tomcat進行配置,否則無法實現預期效果。 只需要在<Connector port="80
memcached安裝+繫結訪問ip
安裝: 1.由於memcached是基於libevent的,需要安裝libevent,libevent-devel $yum -y install libevent libevent-devel 2.下載解壓emcached $ wget http://memcached.
轉帖:Linux雙網絡卡繫結一個IP,實現容錯或負載均衡
其實早在08年9月就做了這個了,只不過最近在學RHCE的時候發現也有bond方面的內容。 發出來大家也學習一下。 實驗環境: CentOS5.3 eth0 eth1 1.先修改eth0 和eht1這2個網絡卡配置檔案。目錄在(/etc/sysconfig/network-scripts/)如
[Nginx]多個域名繫結一個IP 的nginx設定
多個域名繫結在一個ip上 通過nginx反向代理 使得ip上的80埠在多個域名中可以使用 相關配置如下: nginx.conf 最後加上include /usr/local/nginx/conf/servers/XXX.conf; 即絕對路徑下的配置 XXX.
socket繫結的ip為INADDR_ANY 的意義
socket INADDR_ANY 監聽0.0.0.0地址 socket只繫結埠讓路由表決定傳到哪個ip 其中INADDR_ANY就是指定地址為0.0.0.0的地址,這個地址事實上表示不確定地址,或“所有地址”、“任意地址”。 如果指定ip地址為通配地址(INADDR_