Docker-自定义网络

1. 查看所有的docker网络

[root@QK ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
89de730f6075   bridge    bridge    local
eb6d94d2bf0a   host      host      local
89204f4ab500   none      null      local
[root@QK ~]# 

2. 网络模式

  • bridge :桥接 docker(默认)
  • none :不配置网络
  • host :和宿主机共享网络
  • container :容器类网络连通 (局限很大,用的少)

3. 默认的网络模式-bridge

  • 默认隐藏了--net bridge
docker run -d -P --name tomcat02 tomcat
docker run -d -P --name tomcat02 --net bridge tomcat

4. docker network 的所有命令

[root@QK ~]# docker network --help

Usage:  docker network COMMAND

Manage networks

Commands:
  connect     Connect a container to a network
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks

Run 'docker network COMMAND --help' for more information on a command.
[root@QK ~]# 

5. 通过自定义网络实现网络内容器名访问

  • 查看创建自定义网络的相关命令
[root@QK ~]# docker network create --help

Usage:  docker network create [OPTIONS] NETWORK

Create a network

Options:
      --attachable           Enable manual container attachment
      --aux-address map      Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])
      --config-from string   The network from which to copy the configuration
      --config-only          Create a configuration only network
  -d, --driver string        Driver to manage the Network (default "bridge")
      --gateway strings      IPv4 or IPv6 Gateway for the master subnet
      --ingress              Create swarm routing-mesh network
      --internal             Restrict external access to the network
      --ip-range strings     Allocate container ip from a sub-range
      --ipam-driver string   IP Address Management Driver (default "default")
      --ipam-opt map         Set IPAM driver specific options (default map[])
      --ipv6                 Enable IPv6 networking
      --label list           Set metadata on a network
  -o, --opt map              Set driver specific options (default map[])
      --scope string         Control the network's scope
      --subnet strings       Subnet in CIDR format that represents a network segment
[root@QK ~]# 
  • 创建一个网络
    • 使用默认的桥接模式创建一个名为mynet的网络
    • 其子网为192.168.0.0/16
    • 网关为192.168.0.1
    • 共有 (32-16)²-2 个地址供容器使用
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
[root@QK ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
4fbb6b60d135407b62f6e12ecc4d1a9d2d111ba47cb7eb85ef845ff968c10c66
[root@QK ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
89de730f6075   bridge    bridge    local
eb6d94d2bf0a   host      host      local
4fbb6b60d135   mynet     bridge    local
89204f4ab500   none      null      local
[root@QK ~]# 

  • 查看自定义网络详情
[root@QK ~]# docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "4fbb6b60d135407b62f6e12ecc4d1a9d2d111ba47cb7eb85ef845ff968c10c66",
        "Created": "2021-05-20T17:13:33.073239295+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": {}
    }
]
[root@QK ~]# 

6. 创建容器到自定义网络

docker run -d -P --name tomcat04 --net mynet tomcat
  • 指定了自定义网络的容器IP都在自定义网络的范围内
[root@QK ~]# docker run -d -P --name tomcat04 --net mynet tomcat
19200034d1ff74a8981385aaa55a9c014a6216fafcbed5b6aa1d1de071585df5
[root@QK ~]# docker run -d -P --name tomcat05 --net mynet tomcat
8eee1b519d7f0a90959b754ff272bef7d4e7962cbb9aa2bbdb1b6eba81028f71
[root@QK ~]# docker network inspect mynet
[
    {
        "Name": "mynet",
        "Id": "4fbb6b60d135407b62f6e12ecc4d1a9d2d111ba47cb7eb85ef845ff968c10c66",
        "Created": "2021-05-20T17:13:33.073239295+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": {
            "19200034d1ff74a8981385aaa55a9c014a6216fafcbed5b6aa1d1de071585df5": {
                "Name": "tomcat04",
                "EndpointID": "df1c00ff87da74f4fc137a055ec198f5aba8fd531c78d8196629d0abcc0c8947",
                "MacAddress": "02:42:c0:a8:00:02",
                "IPv4Address": "192.168.0.2/16",
                "IPv6Address": ""
            },
            "8eee1b519d7f0a90959b754ff272bef7d4e7962cbb9aa2bbdb1b6eba81028f71": {
                "Name": "tomcat05",
                "EndpointID": "c73b4a5647537b0f3f9d1e895343d827e67107ff754a9cf36b52e427e4f45cd0",
                "MacAddress": "02:42:c0:a8:00:03",
                "IPv4Address": "192.168.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
[root@QK ~]# 

  • 创建在自定义网络的容器,可以直接通过容器名进行Ping通,不需要使用–link
[root@QK ~]# docker exec -it tomcat04 ping tomcat05
PING tomcat05 (192.168.0.3) 56(84) bytes of data.
64 bytes from tomcat05.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from tomcat05.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.071 ms
64 bytes from tomcat05.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.069 ms
64 bytes from tomcat05.mynet (192.168.0.3): icmp_seq=4 ttl=64 time=0.071 ms
64 bytes from tomcat05.mynet (192.168.0.3): icmp_seq=5 ttl=64 time=0.070 ms
^C
--- tomcat05 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 97ms
rtt min/avg/max/mdev = 0.069/0.071/0.074/0.001 ms
[root@QK ~]# 

7. 好处:

  • 多个集群分别使用不同的网络进行隔离,保证集群的安全和健康
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值