【问题标题】:Hyperledger peer not in docker swarm after service update服务更新后,Hyperledger peer 不在 docker swarm 中
【发布时间】:2018-08-23 14:46:57
【问题描述】:

我有一个运行 Docker swarm 的 Hyperledger Fabric 网络。我想通过关闭一些同行来测试 Fabric,看看网络是否仍然有效。

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

新容器没有加入频道,也没有安装链码。第一个容器仍然存在,但不再是群的一部分。我认为当对等点在已经运行的具有许多链码的网络上出现故障时,手动将所有内容安装在对等点上会非常不方便。

有没有办法将旧的对等容器作为同一个服务重新加入到 swarm 中?

【问题讨论】:

    标签: docker hyperledger-fabric hyperledger docker-swarm


    【解决方案1】:

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

    【讨论】:

    • 我正在使用它,这不是问题。我可以访问我需要的所有文件。问题是新容器上的所有东西都必须重新加入/安装,因为它是一个新创建的容器,用作更新的服务。我想使用仍然漂浮的旧的,上面安装了所有东西。
    • 即使你执行到容器中(旧的和新的?)你也可以访问数据,或者你只是把它放在你的主机上?容器本身需要它,这就是被认为是通道的一部分所需要的(它只是文件),所以我猜在服务更新后这些容器不再有数据?新服务的其他所有内容是否与旧服务相同(包括在 swarm 中的位置)?
    • 每个节点都可以访问 peer/channel-artifacts 文件夹中的 genesis.block、channel.tx 和 mychannel.block。当我更新 peer1.org1 服务时,新容器仍然可以访问相同的文件,但不是通道的一部分,也没有安装链代码。当我使用“peer channel join -b mychannel.block”时,peer 新加入了频道,安装链码也是如此。你在群体中的位置是什么意思?该服务的名称确实略有不同。例如。旧 peer1-r2r82ru 与新 peer0-swrg48g3u
    • 此外,使用没有 swarm 的 docker 不会发生此问题,因为当您再次上下移动对等点时,将使用完全相同的对等点(已安装所有内容)。使用 swarm 模式,它只是创建一个新容器的新副本,该容器可以访问数据但没有安装任何内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多