docker-network-create

NAME
       docker-network-create - Create a network

SYNOPSIS
       docker network create [OPTIONS] NETWORK
 

 $ docker network create -d bridge --subnet=192.168.0.0/16 br0
 $ docker network create \
                --driver=bridge \
                --subnet=172.28.0.0/16 \
                --ip-range=172.28.5.0/24 \
                --gateway=172.28.5.254 \
                br0
 $ docker network create -d overlay \
                --subnet=192.168.0.0/16 \
                --subnet=192.170.0.0/16 \
                --gateway=192.168.0.100 \
                --gateway=192.170.0.100 \
                --ip-range=192.168.1.0/24 \
                --aux-address="my-router=192.168.1.5" --aux-address="my-switch=192.168.1.6" \
                --aux-address="my-printer=192.170.1.5" --aux-address="my-nas=192.170.1.6" \
                my-multihost-network

 Network ingress mode
       You can create the network which will be used to provide the routing-mesh in the swarm
       cluster. You do so by specifying --ingress when creating the network. Only one ingress network
       can be created at the time. The network can be removed only if no services depend on it. Any
       option available when creating an overlay network is also available when creating the ingress
       network, besides the --attachable option.

              $ docker network create -d overlay \
                --subnet=10.11.0.0/16 \
                --ingress \
                --opt com.docker.network.mtu=9216 \
                --opt encrypted=true \
                my-ingress-network

   Run services on predefined networks
       You can create services on the predefined docker networks bridge and host.

              $ docker service create --name my-service \
                --network host \
                --replicas 2 \
                busybox top
 

           

OPTIONS
       --attachable[=false]
           Enable manual container attachment

       --aux-address=map[]
           Auxiliary IPv4 or IPv6 addresses used by Network driver

       --config-from=""
           The network from which copying the configuration

       --config-only[=false]
           Create a configuration only network

       -d, --driver="bridge"
           Driver to manage the Network

       --gateway=[]
           IPv4 or IPv6 Gateway for the master subnet

       -h, --help[=false]
           help for create

       --ingress[=false]
           Create swarm routing-mesh network

       --internal[=false]
           Restrict external access to the network

       --ip-range=[]
           Allocate container ip from a sub-range

       --ipam-driver="default"
           IP Address Management Driver

       --ipam-opt=map[]
           Set IPAM driver specific options

       --ipv6[=false]
           Enable IPv6 networking

       --label=
           Set metadata on a network

       -o, --opt=map[]
           Set driver specific options

       --scope=""
           Control the network's scope

       --subnet=[]
           Subnet in CIDR format that represents a network segment

SEE ALSO
       docker-network(1)
 

<think>根据用户的问题,用户在使用Docker部署时指定了一个网络`zxyy_docker-bridage`,但系统报错提示该网络不存在。用户需要解决如何正确使用已存在的Docker网络或创建缺失的网络。结合引用[1]中的信息,华为OpenEuler系统重启后Docker自定义网络丢失的问题,以及引用[2]中关于Docker默认网络的说明,我们可以推断用户可能遇到了类似的问题:自定义网络在宿主机重启后丢失,导致Docker容器启动时无法找到指定的网络。解决方案如下: ###步骤1:检查网络是否存在首先,用户应该检查Docker中是否存在`zxyy_docker-bridage`网络。可以使用以下命令: ```bashdocker networkls``` 如果网络不存在,需要创建它。 ###步骤2:创建网络(如果不存在) 如果网络不存在,使用以下命令创建网络: ```bashdocker networkcreate --driver bridgezxyy_docker-bridage```这里假设用户需要创建一个桥接网络。如果需要指定子网、网关等参数,可以添加相应的选项,例如: ```bashdocker networkcreate --driver bridge--subnet=172.18.0.0/16 --gateway=172.18.0.1zxyy_docker-bridage```###步骤3:解决网络持久化问题(针对华为OpenEuler系统)根据引用[1],华为OpenEuler22.03LTS系统重启后Docker自定义网络丢失,这可能是因为Docker服务在重启时没有正确恢复网络配置。可以尝试以下方法:1.**编辑Docker配置文件**修改Docker的配置文件`/etc/docker/daemon.json`,添加以下内容:```json{"experimental": false,"iptables":true,"ipv6":false,"userland-proxy":false,"dns": ["8.8.8.8","8.8.4.4"],"storage-driver": "overlay2","bip":"172.17.0.1/16","default-address-pools": [{"base":"172.18.0.0/16", "size":24}]}```这里`bip`指定了默认桥接网络docker0的配置,而`default-address-pools`则定义了创建新网络时的默认地址池。注意,这些配置需要根据实际网络环境调整。2.**重启Docker服务**修改配置后,重启Docker服务使配置生效:```bashsudosystemctlrestart docker``` 3. **重新创建网络**重启后,重新创建自定义网络`zxyy_docker-bridage`(如步骤2所示)。4.**设置Docker服务开机自动创建网络**(可选)如果重启后网络仍然丢失,可以创建一个systemd服务单元,在每次Docker启动后自动创建网络。创建服务文件`/etc/systemd/system/docker-custom-network.service`:```ini[Unit]Description=Create customDocker networkAfter=docker.serviceRequires=docker.service[Service]Type=oneshotExecStart=/usr/bin/dockernetwork create--driverbridge zxyy_docker-bridage[Install]WantedBy=multi-user.target```启用并启动该服务:```bashsudosystemctldaemon-reloadsudo systemctl enabledocker-custom-networksudosystemctlstart docker-custom-network```###步骤4:在部署脚本中使用网络在部署脚本中,确保在启动容器时指定正确的网络名称。例如,在之前的部署脚本中,启动容器时使用:```bashdockerrun -d \--name"$service" \--network "zxyy_docker-bridage" \...其他参数... ```###验证启动容器后,使用以下命令检查容器是否连接到正确的网络: ```bashdocker inspect容器名| grep-A5Networks``` ###注意事项1.如果网络名称拼写错误,也会导致网络不存在。请仔细检查网络名称(例如,用户提到的`zxyy_docker-bridage`,注意`bridage`可能是`bridge`的拼写错误?)。2.如果使用docker-compose,在`docker-compose.yml`文件中需要定义网络,并确保与启动命令中指定的网络一致。###引用说明-针对华为OpenEuler系统Docker网络丢失的问题,参考了引用[1]的解决方案[^1]。 -Docker网络的基础知识参考了引用[2][^2]。 如果用户按照以上步骤操作,应该能够解决网络不存在的问题,并确保网络在宿主机重启后仍然存在。§§相关问题§§1.如何查看Docker容器的网络配置? 2.如何配置Docker容器的静态IP地址?3.Docker网络驱动类型有哪些?各自适用什么场景?4.如何解决Docker容器之间的网络连通性问题? 5.Docker Swarm集群中如何管理网络?</think>### 解决 Docker 网络 `zxyy_docker-bridage` 不存在的问题 #### 原因分析: 1. **网络未创建**:Docker 网络 `zxyy_docker-bridage` 从未被创建过 2. **重启丢失**(华为 OpenEuler 系统特有):引用[1]指出华为 OpenEuler 22.03LTS 重启后 Docker 自定义网络会丢失[^1] 3. **拼写错误**:网络名可能存在拼写错误(如 `bridage` vs `bridge`) --- ### 解决方案: #### 1. 检查网络是否存在 ```bash docker network ls | grep zxyy_docker-bridage ``` 若没有输出,说明网络不存在。 #### 2. 创建网络(首次使用) ```bash # 创建桥接网络(推荐) docker network create --driver bridge zxyy_docker-bridage # 指定子网(可选) docker network create --driver bridge --subnet=172.19.0.0/16 zxyy_docker-bridage ``` #### 3. 解决华为 OpenEuler 重启丢失问题(引用[1]方案) ```bash # 编辑 Docker 配置文件 sudo vi /etc/docker/daemon.json # 添加以下内容(防止网络丢失) { "experimental": false, "iptables": true, "ipv6": false, "userland-proxy": false, "dns": ["8.8.8.8", "8.8.4.4"], "storage-driver": "overlay2" } # 重启 Docker sudo systemctl restart docker ``` #### 4. 在部署脚本中自动创建网络 修改您的部署脚本,添加网络检查逻辑: ```bash # 在启动服务函数中添加 if ! docker network inspect zxyy_docker-bridage &>/dev/null; then echo "🛠️ 创建缺失网络: zxyy_docker-bridage" docker network create --driver bridge zxyy_docker-bridage fi # 启动容器时指定网络 docker run -d \ --network zxyy_docker-bridage \ ...其他参数... ``` #### 5. 验证网络状态 ```bash # 查看网络详情 docker network inspect zxyy_docker-bridage # 输出应包含: # "Name": "zxyy_docker-bridage", # "Driver": "bridge", # "Containers": { ... } ``` --- ### 永久性解决方案建议: 1. **网络名称标准化**: ```bash # 更规范的命名(避免拼写错误) docker network create app_network ``` 2. **使用 Docker Compose 管理网络**: ```yaml # docker-compose.yml networks: app-net: driver: bridge name: zxyy_docker-bridage services: myapp: networks: - app-net ``` 3. **添加重启守护脚本**(针对华为系统): ```bash # /etc/systemd/system/docker-network-restore.service [Unit] Description=Restore Docker Networks After=docker.service [Service] Type=oneshot ExecStart=/usr/bin/docker network create --driver bridge zxyy_docker-bridage [Install] WantedBy=multi-user.target ``` --- ### 关键要点: 1. Docker 默认使用 `bridge` 驱动创建网络(引用[2])[^2] 2. 华为 OpenEuler 需特殊配置防止网络丢失[^1] 3. 建议使用脚本自动化网络创建流程 4. 检查网络名称拼写(`bridge` 而非 `bridage`) > **注**:如果网络名称确实是 `zxyy_docker-bridage`(含拼写差异),请确保所有使用场景中保持完全一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值