服务更新后Hyperledger对等方不在docker swarm中

服务更新后Hyperledger对等方不在docker swarm中,docker,hyperledger-fabric,hyperledger,docker-swarm,Docker,Hyperledger Fabric,Hyperledger,Docker Swarm,我有一个与Docker swarm一起运行的Hyperledger结构网络。我想通过取下一些对等点来测试Fabric,看看网络是否仍能正常工作 当网络运行时,我停止/启动对等容器。然后我使用“docker service update$peer service--force”命令查看它是否恢复为服务。Docker然后创建一个不同的新容器并将其添加到服务中 新容器尚未加入通道,并且没有安装链码。第一个容器仍然存在,但不再是群的一部分。我认为,当对等机在一个已经运行的网络上运行,并且有许多链码时,手

我有一个与Docker swarm一起运行的Hyperledger结构网络。我想通过取下一些对等点来测试Fabric,看看网络是否仍能正常工作

当网络运行时,我停止/启动对等容器。然后我使用“docker service update$peer service--force”命令查看它是否恢复为服务。Docker然后创建一个不同的新容器并将其添加到服务中

新容器尚未加入通道,并且没有安装链码。第一个容器仍然存在,但不再是群的一部分。我认为,当对等机在一个已经运行的网络上运行,并且有许多链码时,手动在对等机上安装所有内容将非常不方便


是否有办法将旧的对等容器作为相同的服务加入swarm?

您需要使用卷,以便块/通道数据保持不变。因此,将包含此信息的对等容器中的目录映射到主机上的目录。

我正在使用它,这不是问题所在。我可以找到我需要的所有文件。问题是新容器上的所有内容都必须重新加入/安装,因为它是一个新创建的容器,用作更新的服务。我想使用旧的一个,它仍然漂浮着所有安装在它上面的东西。即使你执行到容器中(旧的和新的?),你也可以访问数据,或者你只是在你的主机上有它?容器本身需要它,这就是通道的一部分(只是文件),所以我猜在服务更新之后,这些容器不再有数据了?新服务是否与旧服务完全相同(包括在swarm中的位置)?每个对等方都可以访问对等方/通道工件文件夹中的genesis.block、channel.tx和mychannel.block。当我更新peer1.org1服务时,新容器仍然可以访问相同的文件,但不是通道的一部分,并且没有安装链码。当我使用“peer channel join-b mychannel.block”时,peer是新加入到通道的,这与安装chaincode是一样的。你在蜂群中的位置是什么意思?该服务的名称确实略有不同。例如,旧的peer1-r2r82ru与新的peer0-swrg48g3uAlso,使用docker而不使用swarm,此问题不会发生,因为当您将对等机上下移动时,使用的是完全相同的对等机(安装了所有设备)。在swarm模式下,它只会创建一个新容器的新副本,该容器可以访问数据,但没有安装任何东西。