玖叶教程网

前端编程开发入门

Docker自定义网络

Docker默认的网络查看

docker network ls

网络模式

bridge :桥接模式 Docker默认,自己创建也使用这种

none:不配置网络

host:和宿主机共享网络

container: 容器间互通!(应用的少,局限很大)

创建网络的命令

Docker自定义网络

docker network create --help

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

#自定义网络
#--driver bridge
#--subnet 192.168.0.0/16 (支持范围:192.168.0.2~192.168.255.255)
#gateway 192.168.0.1
[root@iZwz9emmoedb3p0ua1rh4pZ ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
6d3a7e1db087285a50432643fe733edf20451ee5836867f0e985a9abf5682927
[root@iZwz9emmoedb3p0ua1rh4pZ ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
d7f55debde6e   bridge    bridge    local
4f6ce49958c4   host      host      local
6d3a7e1db087   mynet     bridge    local
bd6702a73dac   none      null      local

自己的网络配置:

创建2个tomcat使用我们自定义的网络

[root@iZwz9emmoedb3p0ua1rh4pZ ~]# docker run -d -P --net mynet --name tomcat01 tomcat
2eb5504a14d5c3813d31f96e01ef7fada641eefde634edd12f3264d18ebada6f
[root@iZwz9emmoedb3p0ua1rh4pZ ~]# docker run -d -P --net mynet --name tomcat02 tomcat
1cef63d61c1a88a29e6dc81e04d27c1bb63e58bf47fbc1ea1afced497604bbc7
[root@iZwz9emmoedb3p0ua1rh4pZ ~]# docker network inspect mynet
[
  {
    "Name": "mynet",
    "Id": "6d3a7e1db087285a50432643fe733edf20451ee5836867f0e985a9abf5682927",
    "Created": "2021-06-02T10:28:00.613446216+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": {
      "1cef63d61c1a88a29e6dc81e04d27c1bb63e58bf47fbc1ea1afced497604bbc7": {
        "Name": "tomcat02",
        "EndpointID": "6cba4e0834e4052798077bb0451115338be97fbe72b75ed2d75e9e2a13cb1878",
        "MacAddress": "02:42:c0:a8:00:03",
        "IPv4Address": "192.168.0.3/16", //自动分配的子网内IP
        "IPv6Address": ""
      },
      "2eb5504a14d5c3813d31f96e01ef7fada641eefde634edd12f3264d18ebada6f": {
        "Name": "tomcat01",
        "EndpointID": "036a9194bf0f216e1f3ee7d97067ecf605363081ce381d7de98760bd5517e68c",
        "MacAddress": "02:42:c0:a8:00:02",
        "IPv4Address": "192.168.0.2/16", //自动分配的子网内IP
        "IPv6Address": ""
      }
    },
    "Options": {},
    "Labels": {}
  }
]

连通性测试

[root@iZwz9emmoedb3p0ua1rh4pZ ~]# docker exec -it tomcat01 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.101 ms
[root@iZwz9emmoedb3p0ua1rh4pZ ~]# docker exec -it tomcat01 ping tomcat02
PING tomcat02 (192.168.0.3) 56(84) bytes of data.
64 bytes from tomcat02.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.054 ms

总结:

1、启动容器默认使用docker0的网络是不能够直接ping通容器名的

2、通过自定义网络,可以使用容器名进行ping通

3、通过自定义网络,不同的集群可以使用不同的网络,保证集群的安全和健康


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言