docker不同容器如何訪問

docker不同容器如何訪問

docker中不同容器間的訪問方法:

虛擬ip訪問

安裝docker時,docker會默認創建一個內部的橋接網絡docker0,每創建一個容器分配一個虛擬網卡,容器之間可以根據ip互相訪問。

[root@33fcf82ab4dd?/]#?[root@CentOS?~]#?ifconfig ...... docker0:?flags=4163<up>??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<link> ????????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 ......</up>

?運行一個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>??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<link> ????????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</up>

以同樣的命令再起一個容器,查看ip地址得到:172.17.0.8

[root@CentOS?~]#?docker?run?-it?--name?centos-2?docker.io/centos:latest [root@33fcf82ab4dd?/]#?ifconfig eth0:?flags=4163<up>??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<link> ????????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</up>

容器內部ping測試結果如下:

[root@33fcf82ab4dd?/]#?ping?172.17.0.7 PING?172.17.0.7?(172.17.0.7)?56(84)?bytes?of?data. bytes?from?172.17.0.7:?icmp_seq=1?ttl=64?time=0.205?ms bytes?from?172.17.0.7:?icmp_seq=2?ttl=64?time=0.119?ms bytes?from?172.17.0.7:?icmp_seq=3?ttl=64?time=0.118?ms bytes?from?172.17.0.7:?icmp_seq=4?ttl=64?time=0.101?ms

創建bridge網絡

1、安裝好docker后,運行如下命令創建bridge網絡:docker network?create testnet

查詢到新創建的bridge testnet。

docker不同容器如何訪問

2、運行容器連接到testnet網絡。

使用方法:docker run -it –name —network –network-alias ?

[root@CentOS?~]#?docker?run?-it?--name?centos-1?--network?testnet?--network-alias?centos-1?docker.io/centos:latest [root@CentOS?~]#?docker?run?-it?--name?centos-2?--network?testnet?--network-alias?centos-2?docker.io/centos:latest

3、從一個容器ping另外一個容器,測試結果如下:

[root@fafe2622f2af?/]#?ping?centos-1 PING?centos-1?(172.20.0.2)?56(84)?bytes?of?data. bytes?from?centos-1.testnet?(172.20.0.2):?icmp_seq=1?ttl=64?time=0.158?ms bytes?from?centos-1.testnet?(172.20.0.2):?icmp_seq=2?ttl=64?time=0.108?ms bytes?from?centos-1.testnet?(172.20.0.2):?icmp_seq=3?ttl=64?time=0.112?ms bytes?from?centos-1.testnet?(172.20.0.2):?icmp_seq=4?ttl=64?time=0.113?ms

更多相關教程,請關注PHP中文網docker教程欄目。

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享