通过命令行为docker compose创建自定义网络

通过命令行为docker compose创建自定义网络,docker,Docker,非常基本,但本文档似乎只提到docker compose文件本身,而不是命令行: 当我打电话时: docker-compose up -d service1 service2 我希望这些创建的容器位于具有自定义名称的新网络上。使用docker compose up命令时如何指定此网络 即使我将网络配置添加到docker compose文件: networks: mynetwork: service1: networks: - mynetwork docker compose

非常基本,但本文档似乎只提到docker compose文件本身,而不是命令行:

当我打电话时:

docker-compose up -d service1 service2
我希望这些创建的容器位于具有自定义名称的新网络上。使用docker compose up命令时如何指定此网络

即使我将网络配置添加到docker compose文件:

networks:
  mynetwork:

service1:
  networks:
    - mynetwork
docker compose命令仍然在默认网络上创建容器,而不是使用“mynetwork”

  • 如果外部网络不存在,则创建外部网络-

    $ docker network create mynetwork || true
    
  • 定义外部网络以组成文件-

    .........
       ports:
         - "8088:8088"
       networks:
         - mynetwork
    
     networks:
       mynetwork:
         external: true
    
  • 类似地,您也可以使用默认的网络create by compose,但它会将您当前的目录名作为定义的网络名的前缀。您也可以使用主机网络模式,但不建议这样做

    以上两个用例现在已经过时了,因为
    compose3.5
    您可以为您的compose环境指定自定义名称。这使得多个compose文件中的服务可以相互通信,而无需进行大量配置

    首选

    • 最近在docker compsoe 3.5中,他们启动了自定义名称功能。所以,如果您可以使用compose 3.5,您可以选择为docker compose网络提供自定义名称。如果不存在,Compose将创建一个新网络。(首选

    CLI文档为。但我怀疑它能满足你的需求。
        version: '3.5'
        .........
           ports:
             - "8088:8088"
           networks:
             - mynetwork
    
           networks:
             mynetwork:
               external: true
               name: mynetwork