docker 环境下udp双向通信怎么办

解决Docker network Create加--subnet后遇到问题

Docker network Create加–subnet后,使用docker network ls查看,在刚刚新建的网络上没看到driver,使用docker network inspect 查看详细信息,会看到好多地方都没数据,特别是driver,不加–subnet,一切又正常。

异常图如下:

docker 环境下udp双向通信怎么办(解决Docker network Create加--subnet后遇到问题)

docker 环境下udp双向通信怎么办(解决Docker network Create加--subnet后遇到问题)

解决

解决:这时候你吧–subnet的网段换一个就好了。原因是–subnet指定的网段和某个network的网段冲突了。

docker 环境下udp双向通信怎么办(解决Docker network Create加--subnet后遇到问题)

补充知识:docker-compose文件中networks使用已经创建的网络

前置条件:

docker版本为:18.06.1-ce,build e68fc7a

docker-compose版本:1.22.0,build f46880fe

使用已经存在的网络

使用docker创建一个网络。给出示例如下:

docker network create --driver=bridge --subnet=192.168.88.0/24 demo

执行命令查看网络是否创建成功:

docker network ls

使用创建好的demo网络,docker-compose.xml如下:

  • version: "3.7"
    services:
     cloudgo:
     image: cloudgo:latest
     container_name: cloudgo
     ports:
      - "8080:8080"
     logging:
      driver: "json-file"
      options:
      max-size: "1000k"
      max-file: "20" 
     networks:
      demo:
       ipv4_address: 192.168.88.80
    networks:
     demo:
     external: true
    
  • 主要核心配置是:

  • networks:
     demo:
     external: true
    
  • 该部分表示使用外部网络demo,外部为true。至于重新创建网络的核心配置为:

  • networks:
      demo:
       driver: default
       config:
         subnet: 172.16.238.0/24
         gateway: 172.16.238.1
    
  • demo表示创建的网络后缀,驱动(driver)设置为默认值,子网(subnet)为:172.16.238.0/24、网关(gateway)。

    上述只是简单讲了下 在当前docker、docker-compose版本下进行上述配置是有效的,其他版本没有尝试过,上述方法不一定适用其他版本。希望能给大家一个参考,也希望大家多多支持开心学习网。