如何在docker stack deploy上禁用网络生成

如何在docker stack deploy上禁用网络生成,docker,docker-compose,docker-stack,Docker,Docker Compose,Docker Stack,我正在将撰写文件部署到via上: 最后,我想将多个compose文件(每个compose文件描述单独微服务的设置)部署到一个docker网络上,例如appsnetwork version: "3" services: service1: image: docker/service1 networks: - appsnetwork customservice2: image: myprivaterepo/imageforcustomservice2

我正在将撰写文件部署到via上:

最后,我想将多个compose文件(每个compose文件描述单独微服务的设置)部署到一个docker网络上,例如appsnetwork

version: "3"
services:

  service1:
    image: docker/service1
    networks:
      - appsnetwork

  customservice2:
    image: myprivaterepo/imageforcustomservice2
    networks:
      - appsnetwork

networks:
  appsnetwork:
docker stack deploy
命令会自动创建一个新网络,其生成的名称如下:custom-stack-name\u appsnetwork

version: "3"
services:

  service1:
    image: docker/service1
    networks:
      - appsnetwork

  customservice2:
    image: myprivaterepo/imageforcustomservice2
    networks:
      - appsnetwork

networks:
  appsnetwork:

我的选择是什么?

首先尝试自己创建网络

docker network create --driver=overlay --scope=swarm appsnetwork
之后,在您的创作中使网络外部化

version: "3"
services:
  service1:
    image: nginx
    networks:
      - appsnetwork

networks:
  appsnetwork:
    external: true
然后运行堆栈的两个副本

docker stack deploy --compose-file docker-compose.yml stack1
docker stack deploy --compose-file docker-compose.yml stack2
Docker inspect在同一网络中同时显示IP

$ docker inspect 369b610110a9
  ...
            "Networks": {
                "appsnetwork": {
                    "IPAMConfig": {
                        "IPv4Address": "10.0.1.5"
                    },
                    "Links": null,
                    "Aliases": [
                        "369b610110a9"
                    ],

$ docker inspect e8b8cc1a81ed

            "Networks": {
                "appsnetwork": {
                    "IPAMConfig": {
                        "IPv4Address": "10.0.1.3"
                    },
                    "Links": null,
                    "Aliases": [
                        "e8b8cc1a81ed"
                    ],