自定义网络
查看所有的docker网络
网络模式
bridge:桥接 docker(默认)
none:不配置网络
host:和宿主机共享网络
container:容器网络连通!(用的少!局限很大)
测试
# 我们直接启动的命令,默认有 --net bridge ,而这个就是我们的docker0
docker run -d -P --name tomcat01 tomcat:8.0
docker run -d -P --name tomcat01 --net bridge tomcat:8.0
# docker0特点,默认,域名不能访问
# 我们可以自定义一个网络
# --driver bridge
# --subnet 192.168.0.0/16
# --gateway 192.168.0.1
[root@master ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
5f1e38310933ce7dbe7773742a53ec94bca5866d12b989127911cafe508d70fd
[root@master ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
a39ec372ec37 bridge bridge local
0f5b89f11b44 host host local
5f1e38310933 mynet bridge local
836b2171fd24 none null local
我们自己的网络就创建好了!
[root@master ~]# docker run -d -P --name tomcat-net-01 --net mynet tomcat:8.0
16dc4719ce8c1c7c5690f228a88eed5fc59f61eaaeec2fe5a84c2a1093ae2082
[root@master ~]# docker run -d -P --name tomcat-net-02 --net mynet tomcat:8.0
2717187fc62d6f624f04f5af1accde7dd0ca6ab212f76272e96fd7d43dc0c093
[root@master ~]# docker network inspect mynet
[
{
"Name": "mynet",
"Id": "5f1e38310933ce7dbe7773742a53ec94bca5866d12b989127911cafe508d70fd",
"Created": "2022-05-10T15:56:05.138587918+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": {
"16dc4719ce8c1c7c5690f228a88eed5fc59f61eaaeec2fe5a84c2a1093ae2082": {
"Name": "tomcat-net-01",
"EndpointID": "9806ce5af67bda13ecd41fb318f5c6524be8e42a988f9e5ff370a30b5d875b8a",
"MacAddress": "02:42:c0:a8:00:02",
"IPv4Address": "192.168.0.2/16",
"IPv6Address": ""
},
"2717187fc62d6f624f04f5af1accde7dd0ca6ab212f76272e96fd7d43dc0c093": {
"Name": "tomcat-net-02",
"EndpointID": "d908b92153b2728b27c9a3fa298a7938233ca4c8ff0d338ccab77d49727922dd",
"MacAddress": "02:42:c0:a8:00:03",
"IPv4Address": "192.168.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
# 再次测试ping连接
[root@master ~]# 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.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.081 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.053 ms
64 bytes from 192.168.0.3: icmp_seq=3 ttl=64 time=0.054 ms
^C
--- 192.168.0.3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.053/0.062/0.081/0.015 ms
# 现在不使用--link也可以ping 名字了!
[root@master ~]# docker exec -it tomcat-net-01 ping tomcat-net-02
PING tomcat-net-02 (192.168.0.3) 56(84) bytes of data.
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.053 ms
64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.055 ms
^C
--- tomcat-net-02 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.047/0.051/0.055/0.009 ms
结论:我们自定义的网络docker都已经帮我们维护好了对应的关系,推荐我们平时这样使用网络!
好处:
redis - 不同的集群使用不同的网络,保证集群是安全和健康的
mysql - 不同的集群使用不同的网络,保证集群是安全和健康的