ipaddr 查看ip
docker0就是docker0的ip
docker run -d -P --name tomcat01 tomcat
docker 分配 eth0@if73
docker exec -it tomcat01 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
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
72: eth0@if73: <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
再启动一个tomcat02
[root@-03 tomcat]# docker run -d -P --name tomcat02 tomcat
8decc0436f509a188c62591dbb630608e92d5217c802004b2329da356d1f7582
[root@-03 tomcat]# docker exec -it tomcat02 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
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
74: eth0@if75: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
再查看ipaddr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
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
74: eth0@if75: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
[root@tanhu-03 tomcat]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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 1500 qdisc mq state UP qlen 1000
link/ether 00:16:3e:0a:79:cf brd ff:ff:ff:ff:ff:ff
inet 172.20.11.121/20 brd 172.20.15.255 scope global dynamic eth0
valid_lft 314338018sec preferred_lft 314338018sec
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:37:6d:69:79 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
73: vethad1056f@if72: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP
link/ether e2:b2:fc:52:5e:83 brd ff:ff:ff:ff:ff:ff link-netnsid 0
75: veth334a677@if74: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
#我们发现这个容器带来的网卡,都是一对对的
#evth-pair ,就是一对的虚拟设备接口,他们都是成对出现的,一端连着协议,一端彼此相连
#正因为这个特性,evth-pair 充当一个桥梁,连接各种虚拟网络设备的
#OpenStac ,Docker容器之间的连接,OVS的连接,都是使用 evth-pair 技术
tomcat01 和tomcat02 使用docker0 进行互联, docker0 类似于路由器
删除容器,会删除对应的网络地址
Docker 使用的是Linux的桥接,宿主机中是Docker容器的网桥docker0.
自定义网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
再次启动tomcat, 使用自定义的网络
docker run -d -P --name tomcat-net1 --net mynet tomcat
docker run -d -P --name tomcat-net2 --net mynet tomcat
docker exec -it f7c8b7deac2e /bin/bash
ping tomcat-net1
自定义的网络,可以通过名称联通
网络互通
docker network connect 联通容器和网络
docker network connect --help
Usage: docker network connect [OPTIONS] NETWORK CONTAINER
docker network connect mynet tomcat01