跳转至

Docker 创建网络

参数

Bash
root@pts/0 # docker network create --help

Usage:  docker network create [OPTIONS] NETWORK

Create a network

Options:
      --aux-address map      网络驱动程序使用的辅助IPv4或IPv6地址(默认值:map[]      --config-from string   从中复制配置的网络
      --config-only          创建仅配置网络
  -d, --driver string        用于管理网络的驱动程序(默认:"bridge"      --gateway strings      主子网的IPv4或IPv6网关
      --ingress              创建群组路由网格网络
      --internal             限制网络的外部访问
      --ip-range strings     从子范围分配容器IP
      --ipam-driver string   IP地址管理驱动程序(默认:"default"      --ipam-opt map         设置IPAM驱动程序特定选项(默认:map[]      --ipv6                 启用IPv6网络
      --label list           在网络上设置元数据
  -o, --opt map              设置驱动程序特定选项(默认:map[]      --scope string         控制网络的范围
      --subnet strings       代表网络段的CIDR格式子网```

# 常用参数解析
--driver    # 驱动类型,默认"bridge"
--subnet    # 网段,默认从docker0地址网上递增(172.17.0.1-->172.18.0.1)
--gateway   # 子网 网关

自定义一个网络

docker network create --driver bridge --subnet 172.18.0.0/16 --gateway 172.18.0.1 mynet

将容器加入网络

Bash
# 启动容器时加入
docker run -itd --name n01 --net mynet alpine

# 已经运行的连接到网络,此时会增加一个新的IP
docker network connect mynet ap01    # 将运行的ap01 容器加入网络

# 此时ap01 容器有两个IP,可以连接n01 的IP
root@pts/0 # docker exec -it ap01 ip a
21: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
23: eth1@if24: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:12:00:03 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.3/16 brd 172.18.255.255 scope global eth1
       valid_lft forever preferred_lft forever

断开ap01 的mynet网络

docker network disconnect mynet ap01