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

时间:2018-10-11 10:03:12

标签: docker

一个非常基本的文件,但是本文档似乎只提到docker-compose文件本身,而不是命令行:https://docs.docker.com/compose/networking/#links

当我打电话时:

docker-compose up -d service1 service2

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

即使我将网络配置添加到docker-compose文件中,也是如此:

networks:
  mynetwork:

service1:
  networks:
    - mynetwork

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

1 个答案:

答案 0 :(得分:1)

  1. 创建不存在的外部网络-

    $ docker network create mynetwork || true
    
  2. 定义外部网络以撰写文件-

    .........
       ports:
         - "8088:8088"
       networks:
         - mynetwork
    
     networks:
       mynetwork:
         external: true
    

类似地,您也可以使用默认的create by网络,但是它将当前目录名添加到定义的网络名的前缀。您也可以使用主机网络模式,但不建议这样做。

由于compose 3.5可以使用自定义名称,因此现在有两个用例已经很老了。这样一来,多个撰写文件中的服务就可以相互通信,而无需进行大量配置。

首选

  • 最近在docker compsoe 3.5中,他们启动了自定义名称功能。因此,如果您可以使用compose 3.5,则可以选择为docker compose网络自定义名称。如果不存在,Compose会创建一个新网络。(首选https://docs.docker.com/compose/compose-file/#name-1

Ex-

    version: '3.5'
    .........
       ports:
         - "8088:8088"
       networks:
         - mynetwork

       networks:
         mynetwork:
           external: true
           name: mynetwork