[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --name tomcat1 tomcat:8
Unable to findimage 'tomcat:8'locally
8: Pulling from library/tomcat
90fe46dd8199: Pull complete
35a4f1977689: Pull complete
bbc37f14aded: Pull complete
74e27dc593d4: Pull complete
93a01fbfad7f: Pull complete
1478df405869: Pull complete
64f0dd11682b: Pull complete
68ff4e050d11: Pull complete
9a696f0d2c22: Pull complete
44fdefb02938: Pull complete
Digest: sha256:140ebee3a8ad23065abee46539900c69dc4d90a1ff4b41f2396e38968e05e82b
Status: Downloaded newer image fortomcat:8
cb2139eeaec4da409626b2192faf7d43bb3d326597d7b1fd6ca5d9385e14bc3a
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat1 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
112: eth0@if113: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc noqueue state UP group default
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.18.0.2/16 brd 172.18.255.255 scope global eth0
valid_lft forever preferred_lft forever
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# ping 172.18.0.2
PING 172.18.0.2 (172.18.0.2) 56(84) bytes of data.
64bytes from 172.18.0.2: icmp_seq=1ttl=64time=0.064 ms
64bytes from 172.18.0.2: icmp_seq=2ttl=64time=0.066 ms
64bytes from 172.18.0.2: icmp_seq=3ttl=64time=0.055 ms
64bytes from 172.18.0.2: icmp_seq=4ttl=64time=0.056 ms3、docker橋接網絡Docker使用Linux橋接,在宿主機虛擬一個Docker容器網橋(docker0),Docker啟動一個容器時會根據Docker網橋的網段分配給容器一個IP位址,稱為Container-IP,同時Docker網橋是每個容器的默認網關。因為在同一宿主機內的容器都接入同一個網橋,這樣容器之間就能夠通過容器的Container-IP直接通信。
Linux虛擬網絡技術
Docker容器網絡就很好的利用了Linux虛擬網絡技術,在本地主機和容器內分別創建一個虛擬接口,並讓他們彼此聯通(這樣一對接口叫veth pair);
Docker中的網絡接口默認都是虛擬的接口。虛擬接口的優勢就是轉發效率極高(因為Linux是在內核中進行數據的複製來實現虛擬接口之間的數據轉發,無需通過外部的網絡設備交換),對於本地系統和容器系統來說,虛擬接口跟一個正常的乙太網卡相比並沒有區別,只是他的速度快很多。
4、查看本機網絡(本機有三個網絡) # lo:127.0.0.1
# eth0:172.17.119.96 阿里雲私有ip;內網可以互通,訪問不要流量,省流量。
# docker0:172.18.0.1
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:0a:07:ba brd ff:ff:ff:ff:ff:ff
inet 172.17.119.96/20 brd 172.17.127.255 scope global dynamic eth0
valid_lft 315025394sec preferred_lft 315025394sec
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500qdisc noqueue state DOWN group default
link/ether 02:42:f1:f3:d2:be brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0
valid_lft forever preferred_lft forever5、網絡的創建過程Docker創建一個容器的時候,會具體執行以下操作:
創建一對虛擬接口,分別放到本地主機和新容器的命名空間中
本地主機一段的虛擬接口連接到默認的docker0網橋或者指定網橋上,並具有一個以veth開頭的唯一名字
容器一段的虛擬接口將放到新創建的容器中,並修改名字為eth0。這個接口只在容器的命名空間可見
從網橋的可用地址段中獲取一個空閒的地址分配給容器的eth0(如:172.18.0.1/16),並配置默認路由網關為docker0網卡的內部接口docker0的IP位址
完成以上,容器就可以使用它所能看到的eth0虛擬網卡來連接其他容器和訪問外部網絡。
6、默認在docker0網絡下,docker容器之間不能相互訪問 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
efe07891e348 tomcat:8 "catalina.sh run" 12minutes ago Up 12minutes 0.0.0.0:32770->8080/tcp tomcat2
cb2139eeaec4 tomcat:8 "catalina.sh run" 24minutes ago Up 24minutes 0.0.0.0:32768->8080/tcp tomcat
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat ping tomcat2
ping: tomcat2: Name or servicenot known7、容器之間只能ping通自己 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --hostname tomcat1 --name tomcat1 tomcat:8
63821ec9194e540d2b162d64c05851b2216ffa0acd2c8de3da4e0427df7b6c9a
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --hostname tomcat2 --name tomcat2 tomcat:8
74d3a2b65539e0b8e372da81b9c5ddd516ced07c948887ef6fc9f56da95f659d
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat1 ping tomcat2
ping: tomcat2: Name or servicenot known
# 自己ping自己可以
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat1 ping tomcat1
PING tomcat1 (172.18.0.2) 56(84) bytes of data.
64bytes from tomcat1 (172.18.0.2): icmp_seq=1ttl=64time=0.045 ms
64bytes from tomcat1 (172.18.0.2): icmp_seq=2ttl=64time=0.048 ms8、使用link [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -P -d --name tomcat3 --link tomcat2 tomcat:8
bb2f63e66d4ba7545c29c7957e79c5f31dc922ff8138b6a31ec5b663722c4927
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat3 ping tomcat2
PING tomcat2 (172.18.0.3) 56(84) bytes of data.
64bytes from tomcat2 (172.18.0.3): icmp_seq=1ttl=64time=0.087 ms
64bytes from tomcat2 (172.18.0.3): icmp_seq=2ttl=64time=0.064 ms
64bytes from tomcat2 (172.18.0.3): icmp_seq=3ttl=64time=0.060 ms
# 只有tomcat3到tomcat2的方向是通的,反向ping不通
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat3 ping tomcat1
ping: tomcat1: Name or servicenot known
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat2 ping tomcat3
ping: tomcat3: Name or servicenot known9、link原理是創建的時候他把ip綁定到了hosts # 原理是創建的時候他把ip綁定到了hosts
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat3 cat /etc/hosts
127.0.0.1localhost
::1localhost ip6-localhost ip6-loopback
fe00::0ip6-localnet
ff00::0ip6-mcastprefix
ff02::1ip6-allnodes
ff02::2ip6-allrouters
172.18.0.3tomcat2 tomcat2 #自動綁定hosts
172.18.0.4bb2f63e66d4b10、link的缺點(重新建創建docker容器之後,無法相互訪問,強制把link文件刪除) [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker stop tomcat2
tomcat2
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker rm tomcat2
tomcat2
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --hostname tomcat2 --name tomcat2 tomcat:8
95e728be43e6ea2abe5d8a4df2c6f830ce880e7ba08b8e232597e12500f5a23c
# tomcat3由於之前把tomcat2綁定了hosts,tomcat2銷毀之後重啟建立的,導致tomcat3系統直接崩潰了。
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat3 ping tomcat2
Error response from daemon: Cannot link to a non running container: /tomcat2 AS /tomcat3/tomcat2
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat3 cat /etc/hosts
Error response from daemon: Cannot link to a non running container: /tomcat2 AS /tomcat3/tomcat2
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker restart tomcat3
Error response from daemon: Cannot restartcontainer tomcat3: Cannot link to a non running container: /tomcat2 AS /tomcat3/tomcat211、docker容器可以支持的ip數量 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
f92c1c2c4bf7 bridge bridge local
e6983a928f90 host host local
21e45a3c002b none null local
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker network inspect f92c1c2c4bf7
[
{
"Name": "bridge",
"Id": "f92c1c2c4bf7f5b909637cded1301a513ac650f8eb5841504ed7619d7a0d5e66",
"Created": "2020-05-01T16:34:11.962547179+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16", #默認情況下可以開啟六萬多個ip
"Gateway": "172.18.0.1"
}
]
}12、清空所有容器 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker rm -f $(docker ps -aq)
95e728be43e6
bb2f63e66d4b
63821ec9194e
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:0a:07:ba brd ff:ff:ff:ff:ff:ff
inet 172.17.119.96/20 brd 172.17.127.255 scope global dynamic eth0
valid_lft 315020766sec preferred_lft 315020766sec
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500qdisc noqueue state DOWN group default
link/ether 02:42:f1:f3:d2:be brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0
valid_lft forever preferred_lft forever13、自定義網絡命令詳解 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker network create --help
Usage:docker network create [OPTIONS] NETWORK
Create a network
Options:
--attachable Enable manual container attachment
--aux-addressmap Auxiliary IPv4 or IPv6 addresses used by
Network driver (default map[])
--config-fromstring The network from which copying the configuration
--config-only Create a configuration only network
-d, --driverstring Driver to manage the Network (default "bridge")
--gatewaystrings IPv4 or IPv6 Gateway forthe master subnet
--ingress Create swarm routing-mesh network
--internal Restrict external access to the network
--ip-rangestrings Allocate container ip from a sub-range
--ipam-driverstring IP Address Management Driver (default "default")
--ipam-optmap Set IPAM driver specific options (default map[])
--ipv6 Enable IPv6 networking
--labellist Set metadata on a network
-o, --optmap Set driver specific options (default map[])
--scopestring Control the network's scope
--subnetstrings Subnet inCIDR format that represents a
network segment14、bridge模式網絡Docker守護進程創建了一個虛擬乙太網橋docker0,附加在其上的任何網卡之間都能自動轉發數據包。默認情況下,守護進程會創建一對對等接口,將其中一個接口設置為容器的eth0接口,另一個接口放置在宿主機的命名空間中,從而將宿主機上的所有容器都連接到這個內部網絡上。同時,守護進程還會從網橋的私有地址空間中分配一個IP位址和子網給該容器。
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --net=bridge --hostname tomcat2 --name tomcat2 tomcat:8
27f3deb11ce1c4c2103c91a29799247bd5dbce9a1aceea4787cd826ee32bfe59
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
27f3deb11ce1 tomcat:8 "catalina.sh run" 29seconds ago Up 28seconds 0.0.0.0:32780->8080/tcp tomcat2
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat2 ping tomcat4
ping: tomcat4: Name or servicenot known15、host模式該模式將禁用Docker容器的網絡隔離。因為容器共享了宿主機的網絡命名空間,容器和宿主機具有相同的IP位址172.17.119.96直接暴露在公共網絡中。因此,你需要通過埠映射(port mapping)來進行協調。該模式比bridge模式更快(因為沒有路由開銷),但是它將容器直接暴露在公共網絡中,是有安全隱患的。
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --name tomcat3 --net host tomcat:8
d4e9d230278c9a32b19069f0f63ce66766cf5943bc7c6121c148965177b3bfbe
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat3 ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:0a:07:ba brd ff:ff:ff:ff:ff:ff
inet 172.17.119.96/20 brd 172.17.127.255 scope global dynamic eth0
valid_lft 315019616sec preferred_lft 315019616sec
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc noqueue state UP group default
link/ether 02:42:f1:f3:d2:be brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0
valid_lft forever preferred_lft forever
129: vethcc0922d@if128: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc noqueue master docker0 state UP group default
link/ether a2:45:72:a8:0d:84 brd ff:ff:ff:ff:ff:ff link-netnsid 016、container模式(一般緩存使用,在同一臺機器訪問比較快)在理解了host模式後,這個模式也就好理解了。這個模式指定新創建的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享IP、埠範圍等。同樣,兩個容器除了網絡方面,其他的如文件系統、進程列表等還是隔離的。兩個容器的進程可以通過lo網卡設備通信。
# 相當於和tomcat1公用同一個ip同一個埠,導致埠衝突
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --net container:tomcat1 --name tomcat2 tomcat:8
docker: Error response from daemon: conflicting options: port publishing and the container type network mode.
See 'docker run --help'.17、自定義橋接網絡自定義網絡默認使用的是橋接網絡「bridge」
1.創建橋接網絡 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
e99e400ffce3e42db45ecf4bf84baf97b726067d157445b24c630b5ad7689477
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
f92c1c2c4bf7 bridge bridge local
e6983a928f90 host host local
e99e400ffce3 mynet bridge local
21e45a3c002b none null local
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker network inspect mynet
[
{
"Name": "mynet",
"Id": "e99e400ffce3e42db45ecf4bf84baf97b726067d157445b24c630b5ad7689477",
"Created": "2020-05-03T15:31:32.617833011+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]2.創建容器 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --name tomcat-net-01 --net mynet tomcat:8
5490bfc5d4b92a8e816670d51604bc79292c9ed4a3c25218031370dd4f85a674
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --name tomcat-net-02 --net mynet tomcat:8
eb1b6b71c87e344c2d11c872d8374d74b4e3fa5129c7fade1a1bfb0ef8dc29ce
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb1b6b71c87e tomcat:8 "catalina.sh run" 7seconds ago Up 5seconds 0.0.0.0:32778->8080/tcp tomcat-net-02
5490bfc5d4b9 tomcat:8 "catalina.sh run" 19seconds ago Up 18seconds 0.0.0.0:32777->8080/tcp tomcat-net-013.自定義網絡本身就維護好了主機名和ip的對應關係(ip和域名都能通) [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat-net-02 ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
133: eth0@if134: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc noqueue state UP group default
link/ether 02:42:c0:a8:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.0.3/16 brd 192.168.255.255 scope global eth0
valid_lft forever preferred_lft forever
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat-net-01 ping 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64bytes from 192.168.0.3: icmp_seq=1ttl=64time=0.105 ms
64bytes from 192.168.0.3: icmp_seq=2ttl=64time=0.065 ms
64bytes from 192.168.0.3: icmp_seq=3ttl=64time=0.064 ms
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat-net-01 ping tomcat-net-02
PING tomcat-net-02 (192.168.0.3) 56(84) bytes of data.
64bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=1ttl=64time=0.037 ms
64bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=2ttl=64time=0.062 ms
64bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=3ttl=64time=0.062 ms4.指定ip [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker run -d -P --name tomcat-net-04 --ip 192.168.0.77 --net mynet tomcat:8
9be39c53162c188753c7986fc17e9792d3bf709f458be63e3d626e488e6cf6ea
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat-net-01 ping 192.168.0.77
PING 192.168.0.77 (192.168.0.77) 56(84) bytes of data.
64bytes from 192.168.0.77: icmp_seq=1ttl=64time=0.089 ms
64bytes from 192.168.0.77: icmp_seq=2ttl=64time=0.061 ms18、打通mynet-docker01.不在同一網段,服務無法訪問 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9be39c53162c tomcat:8 "catalina.sh run" 17minutes ago Up 17minutes 0.0.0.0:32779->8080/tcp tomcat-net-04
eb1b6b71c87e tomcat:8 "catalina.sh run" 27minutes ago Up 27minutes 0.0.0.0:32778->8080/tcp tomcat-net-02
5490bfc5d4b9 tomcat:8 "catalina.sh run" 27minutes ago Up 27minutes 0.0.0.0:32777->8080/tcp tomcat-net-01
d4e9d230278c tomcat:8 "catalina.sh run" 35minutes ago Up 35minutes tomcat3
cab9a4c1556a tomcat:8 "catalina.sh run" 45minutes ago Up 45minutes 0.0.0.0:32776->8080/tcp tomcat1
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat-net-01 ping tomcat3
ping: tomcat3: Name or servicenot known
2.將服務加入新建網絡 # 將tomcat1添加到自己的新建的網絡裡面
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker network connect mynet tomcat1
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker network inspect mynet
"cab9a4c1556a7c5c4f91b71aa971aac47bedd8b8fadedfaafd13e3d41a8af994": {
"Name": "tomcat1",
"EndpointID": "1bf906eb112fd901e621c0a6077250ecde78a398b6babeded03ca2c05bcf0916",
"MacAddress": "02:42:c0:a8:00:04",
"IPv4Address": "192.168.0.4/16", # 多了一條地址
"IPv6Address": ""
},
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat1 ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
128: eth0@if129: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc noqueue state UP group default
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.18.0.2/16 brd 172.18.255.255 scope global eth0
valid_lft forever preferred_lft forever
137: eth1@if138: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500qdisc noqueue state UP group default # 新加了一塊網卡
link/ether 02:42:c0:a8:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.0.4/16 brd 192.168.255.255 scope global eth1
valid_lft forever preferred_lft forever
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat-net-01 ping tomcat1
PING tomcat1 (192.168.0.4) 56(84) bytes of data.
64bytes from tomcat1.mynet (192.168.0.4): icmp_seq=1ttl=64time=0.082 ms
3.將服務退出新建網絡 [root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker network disconnect mynet tomcat1
[root@iZ2zeir6vcnpz8qw3t455tZ ~]# docker exec -it tomcat-net-01 ping tomcat1
ping: tomcat1: Name or servicenot known如果文章有任何錯誤歡迎不吝賜教,其次大家有任何關於運維的疑難雜問,也歡迎和大家一起交流討論。關於運維學習、分享、交流,筆者開通了微信公眾號【運維貓】,感興趣的朋友可以關注下,歡迎加入,建立屬於我們自己的小圈子,一起學運維知識。群主還經營一家Orchis飾品店,喜歡的小夥伴歡迎👏前來下單。
有需要技術交流的小夥伴可以加我微信,期待與大家共同成長,本人微信:
最近有一些星友諮詢我知識星球的事,我也想繼續在星球上發布更優質的內容供大家學習和探討。運維貓公眾號平臺致力於為大家提供免費的學習資源,知識星球主要致力於即將入坑或者已經入坑的運維行業的小夥伴。
點擊閱讀原文 查看更多精彩內容!!!