Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker堆栈中的网络未定义问题_Docker_Docker Swarm_Docker Stack - Fatal编程技术网

docker堆栈中的网络未定义问题

docker堆栈中的网络未定义问题,docker,docker-swarm,docker-stack,Docker,Docker Swarm,Docker Stack,我正在使用docker stack在具有两个节点的swarm网络上部署一些服务。我创建了覆盖网络,我可以看到通过 docker network ls但当我试图在docker堆栈文件中使用该网络时,我不断收到错误network undefined。 这是我的docker堆栈文件 version: '3.4' services: orderer1st: image: hyperledger/fabric-orderer:1.2.1 networks:

我正在使用docker stack在具有两个节点的swarm网络上部署一些服务。我创建了覆盖网络,我可以看到通过
docker network ls
但当我试图在docker堆栈文件中使用该网络时,我不断收到错误
network undefined
。 这是我的docker堆栈文件

version: '3.4'

services:
    orderer1st:
        image: hyperledger/fabric-orderer:1.2.1
        networks:
            - fabricoverlay
        ports:
              - 7050:7050

        environment:
              - ORDERER_GENERAL_LOGLEVEL=info
              - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
              - ORDERER_GENERAL_GENESISMETHOD=file
              - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
              - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
              - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp

        command: orderer
        volumes:
             - ./channel-configuration/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block
             - ./msp:/var/hyperledger/orderer/msp
我做错什么了吗?我不知道为什么docker stack无法选择覆盖网络

Docker版本:

Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:24:56 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:23:21 2018
  OS/Arch:          linux/amd64
  Experimental:     false

您必须添加网络,以便服务知道如何找到它

networks:
    fabricoverlay:
        external: true

请注意,一个更简单的选择可能是让swarm为您的堆栈创建该网络。只需删除compose文件中的网络引用,删除手动创建的网络,然后部署堆栈。Docker将为您创建它,每个堆栈一个网络。

谢谢您的帮助。第二种方法(堆栈将自动创建网络)的问题是,我必须创建多个堆栈,所有这些堆栈都应该在同一网络中,这就是为什么我尝试手动创建覆盖网络,然后在同一网络中添加所有堆栈,以便我可以使用ip地址或主机名进行访问。希望得到您对此方法的反馈。:)那很好。一个有效的swarm模型。