docker容器間互相訪問(docker bridge網(wǎng)絡(luò))
方式一、虛擬ip訪問
安裝docker時(shí),docker會(huì)默認(rèn)創(chuàng)建一個(gè)內(nèi)部的橋接網(wǎng)絡(luò)docker0,每創(chuàng)建一個(gè)容器分配一個(gè)虛擬網(wǎng)卡,容器之間可以根據(jù)ip互相訪問。
[root@33fcf82ab4dd /]# [root@CentOS ~]# ifconfig … docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 fe80::42:35ff:feac:66d8 prefixlen 64 scopeid 0x20 ether 02:42:35:ac:66:d8 txqueuelen 0 (Ethernet) RX packets 4018 bytes 266467 (260.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4226 bytes 33935667 (32.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 …
運(yùn)行一個(gè)centos鏡像, 查看ip地址得到:172.17.0.7
[root@CentOS ~]# docker run -it --name centos-1 docker.io/centos:latest [root@6d214ff8d70a /]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.7 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 fe80::42:acff:fe11:7 prefixlen 64 scopeid 0x20 ether 02:42:ac:11:00:07 txqueuelen 0 (Ethernet) RX packets 16 bytes 1296 (1.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 648 (648.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
以同樣的命令再起一個(gè)容器,查看ip地址得到:172.17.0.8
[root@CentOS ~]# docker run -it --name centos-2 docker.io/centos:latest [root@33fcf82ab4dd /]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.8 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 fe80::42:acff:fe11:8 prefixlen 64 scopeid 0x20 ether 02:42:ac:11:00:08 txqueuelen 0 (Ethernet) RX packets 8 bytes 648 (648.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 648 (648.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
容器內(nèi)部ping測(cè)試結(jié)果如下:
[root@33fcf82ab4dd /]# ping 172.17.0.7 PING 172.17.0.7 (172.17.0.7) 56(84) bytes of data. 64 bytes from 172.17.0.7: icmp_seq=1 ttl=64 time=0.205 ms 64 bytes from 172.17.0.7: icmp_seq=2 ttl=64 time=0.119 ms 64 bytes from 172.17.0.7: icmp_seq=3 ttl=64 time=0.118 ms 64 bytes from 172.17.0.7: icmp_seq=4 ttl=64 time=0.101 ms
這種方式必須知道每個(gè)容器的ip,在實(shí)際使用中并不實(shí)用。
方式二 docker bridge網(wǎng)絡(luò)
查看所有網(wǎng)絡(luò):
docker network ls

查看某個(gè)網(wǎng)絡(luò)詳情:
docker network inspect 網(wǎng)絡(luò)ID?

刪除某個(gè)網(wǎng)絡(luò) :
docker network remove 網(wǎng)絡(luò)id
bridge
bridge模式:docker網(wǎng)絡(luò)隔離基于網(wǎng)絡(luò)命名空間,在物理機(jī)上創(chuàng)建docker容器時(shí)會(huì)為每一個(gè)docker容器分配網(wǎng)絡(luò)命名空間,并且把容器IP橋接到物理機(jī)的虛擬網(wǎng)橋上。
bridge 存在的目的:隔離各個(gè)容器,使得每個(gè)容器的端口號(hào)都是隔離的。如果不隔離開來,那么容器將和宿主機(jī),容器和容器間都會(huì)發(fā)生端口占用的情況。
創(chuàng)建bridge網(wǎng)絡(luò)
docker network create -d bridge esnetwork

兩個(gè)容器通過bridge網(wǎng)絡(luò)互連
這里以es 和kibana為列
docker network connect esnetwork es docker network connect esnetwork kibana

查看網(wǎng)絡(luò)esnetwork

加入一個(gè)網(wǎng)絡(luò)后 實(shí)現(xiàn)互聯(lián)


推薦使用這種方法,自定義網(wǎng)絡(luò),因?yàn)槭褂玫氖蔷W(wǎng)絡(luò)別名,可以不用顧慮ip是否變動(dòng),只要連接到docker內(nèi)部bright網(wǎng)絡(luò)即可互訪。bridge也可以建立多個(gè),隔離在不同的網(wǎng)段。
到此這篇關(guān)于docker容器間互相訪問(docker bridge網(wǎng)絡(luò))的文章就介紹到這了,更多相關(guān)docker容器訪問內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux下定時(shí)自動(dòng)備份Docker中所有SqlServer數(shù)據(jù)庫(kù)的腳本
這篇文章主要介紹了Linux下定時(shí)自動(dòng)備份Docker中所有SqlServer數(shù)據(jù)庫(kù)?,編寫shell文件給出一個(gè)備份的范例,在Linux添加定時(shí)任務(wù),通過下列命令來檢測(cè)并安裝這個(gè)服務(wù),需要的朋友可以參考下2022-09-09
基于Docker實(shí)現(xiàn)Redis主從+哨兵搭建的示例實(shí)踐
本文主要介紹了基于Docker實(shí)現(xiàn)Redis主從+哨兵搭建的示例實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
使用Docker run的選項(xiàng)以覆蓋Dockerfile中的設(shè)置詳解
今天小編就為大家分享一篇關(guān)于使用Docker run的選項(xiàng)以覆蓋Dockerfile中的設(shè)置詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10

