
1. 啟動一個tomcat容器
docker run -d -p 8080 --name tomcat01 tomcat
2. 查看容器ip, 看到 eth0@if5 網卡
docker exec -it tomcat01 ip addr
---------------------------------------------------------------------------------------------
4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
---------------------------------------------------------------------------------------------
3. linux主機通過 ip addr 查看網路資訊, 比原來多了一個網卡 veth9d3cca8@if4
---------------------------------------------------------------------------------------------
5: veth9d3cca8@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether 32:b0:fd:f5:c4:32 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::30b0:fdff:fef5:c432/64 scope link
valid_lft forever preferred_lft forever
---------------------------------------------------------------------------------------------
4. 原理
我們每啟動一個docker容器, docker就會給docker容器分配一個ip, 我們只要安裝了docker, 就會有一個網卡 docker0, 網路模式是橋接模式, 使用的技術是 evth-pair 技術!
5. 再啟動一個tomcat02發現有多了一對網卡, 都是成對出現的
evth-pair 就是一堆的虛擬設備介面, 他們都是成對出現的, 一端連著協議, 一端彼此相連
正因為有這個特性, 利用 evth-pair 充當一個橋梁, 連接各種虛擬網路設備
OpenStac, Docker容器之間的連接, OVS的連接, 都是使用 evth-pair
6.運行了兩個tomcat互相是可以 ping 通的
[root@localhost bingo]# docker exec -it tomcat01 ping 172.17.0.3
PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.
64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.181 ms
64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.054 ms
64 bytes from 172.17.0.3: icmp_seq=3 ttl=64 time=0.059 ms
容器之間通信原理圖

















轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/348539.html
標籤:其他
