如何在Docker Compose 3.7中转换网桥网络

时间:2019-11-27 11:19:34

标签: docker docker-compose

使用版本2进行了定义:

networks:
  vpcbr:
    driver: bridge
    ipam:
     config:
       - subnet: 10.5.0.0/16
         gateway: 10.5.0.1
         aux_addresses:
          mysql: 10.5.0.5
          apigw-tomcat: 10.5.0.6

如何在docker-compose版本3.7中写入相同的配置?

参考:Provide static IP to docker containers via docker-compose

2 个答案:

答案 0 :(得分:0)

您不能使用版本3(或更高版本)的配置文件复制该配置。来自the documentation

  

ipam

     

指定自定义IPAM配置。这是一个具有多个属性的对象,每个属性都是可选的:

     
      
  • driver:自定义IPAM驱动程序,而不是默认驱动程序。
  •   
  • config:具有零个或多个配置块的列表,每个配置块包含以下任意键:      
        
    • subnet:CIDR格式的子网代表一个网段
    •   
  •   
     

注意:目前仅支持版本2的其他IPAM配置,例如网关。

要实现类似的目的,您可以使用docker-composedocker network create之外创建网桥网络,然后通过在撰写文件中配置external: true网络来使用它。

答案 1 :(得分:0)

使用 version 3.9,您可以在 docker-compose 中配置网络设置。

version: "3.9"
networks:
  mynet01:
    driver: overlay
    ipam:
      driver: default
      config:
        - subnet: 10.0.0.0/16
    attachable: true

有关详细信息,请查看此https://docs.docker.com/compose/compose-file/compose-file-v3/#network-configuration-reference


您也可以从命令行创建网络

$ docker network create \
  --driver overlay \
  --ingress \
  --subnet=10.11.0.0/16 \
  --gateway=10.11.0.2 \
  --opt com.docker.network.driver.mtu=1200 \
  --scope swarm \
  my-ingress

你可以在docker compose中引用这个网络,如下

version: "3.9"
networks:
  network1:
    external: true
    name: my-ingress

我们使用 external: true 是因为网络已经可用。

参考:https://docs.docker.com/network/overlay/#customize-the-default-ingress-network