docker swarm服务更新后替换了对等容器

时间:2018-09-07 07:34:02

标签: docker hyperledger-fabric hyperledger docker-swarm

当我在docker swarm中的对等容器上使用“ docker service update”时,对等方get被一个新的替换。

新名称几乎相同,例如 旧版:peer1.org1-223d2d23d23新版:一个peer1.org1-345245634ff4

它可以访问所有文件,例如channel.tx,genesis.block和mychannel.block。在对等/通道工件映射中。但是新对等方尚未加入该频道,因此未安装任何链码。

我无法加入频道或安装链码,因为对于peer1.org1已经是这样。但是,如果获取最旧的通道块,则可以。但这给我带来了奇怪的情况。

所以我的问题是

在服务更新或停机后,docker swarm中的对等服务如何仍能成为堆栈/群的一部分,而又不是一个全新的对等容器?

1 个答案:

答案 0 :(得分:1)

当您在Docker,Docker Swarm或Kubernetes中升级容器时,实际上是在用另一个接收相同设置,环境,相同设置的容器替换该容器(即,实际上没有就地升级容器的概念),等

以独立模式运行Docker并使用卷时,这是相当透明的,因为新容器与以前的容器部署在同一主机上,因此将安装相同的卷等。

似乎您已经在从共享存储/文件系统中装入某种类型的卷以访问channel.tx等。

实际上,您还需要确保将卷用于对等方(以及与此相关的订购者等)使用/需要的持久性存储。

在对等方,core.yaml中的两个关键属性是:

peer.fileSystemPath-默认为/var/hyperledger/production,是保存分类帐,已安装链码等的位置。相应的环境变量为CORE_PEER_FILESYSTEMPATH

peer.mspConfigPath-存储本地MSP信息的位置。相应的环境变量为CORE_PEER_MSPCONFIGPATH

您将需要将这些卷作为卷安装,并且鉴于您正在使用Swarm,这些卷将需要在所有Swarm主机上都可用的共享存储上可用。