Когда вы обновляете контейнер в 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.