docker - Docker Swarm 服务容器在手动停止时不会自动启动
问题描述
我在 docker-compose 文件中为我的服务定义了以下配置。
要部署,我使用了以下命令
docker stack up rmbcnetwork -c /root/blockchain/network-config/docker-compose/orderer2.yaml
我做了一个docker service ls
从 swarm manager 查看部署的服务。
然后我移动到部署了服务的SERVER1docker stop <con-id>
,并通过发出命令手动停止了容器。我希望 swarm 再次启动容器,因为重新启动的条件已被定义为compose 文件中的on-failure但它没有。
我不得不回到 swarm manager 服务器并发出docker service update <service-id> --force
命令以再次启动服务容器。
同样在检查服务容器时,restart-policy 不包含撰写文件中的指定值。
version: '3.2'
networks:
rmbcnetwork:
driver: overlay
attachable: true
services:
orderer2:
image: hyperledger/fabric-orderer:1.4.2
volumes:
- /data/orderer/:/var/hyperledger/production/orderer
environment:
- FABRIC_LOGGING_SPEC=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
# enabled TLS
- ORDERER_GENERAL_TLS_ENABLED=true
- ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
- ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
- ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
#Prometheus
- ORDERER_OPERATIONS_LISTENADDRESS=0.0.0.0:9443
- ORDERER_METRICS_PROVIDER=prometheus
#RAFT Settings
- ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/var/hyperledger/orderer/tls/server.crt
- ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/var/hyperledger/orderer/tls/server.key
- ORDERER_GENERAL_CLUSTER_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
ports:
- target: 7050
published: 7050
protocol: tcp
mode: host
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: orderer
networks:
rmbcnetwork:
aliases:
- orderer2.examples.com
deploy:
mode: global
restart_policy:
condition: on-failure
max_attempts: 1
placement:
constraints: [node.hostname == SERVER1]
解决方案
推荐阅读
- c# - 查看页面未在 C#、MVC 5 中显示
- elixir - Elixir/Phoenix Framework 认证/授权
- excel - 如何使用vba在excel中粘贴存储在变量中的特殊数据
- opencv - 使用 opencv - traingulatePoints 单元从两个图像中确定 3d 位置
- bash - 如何更新我的 Spyder 3.3.6 版启动图标?
- python - python中dict值的条件计算
- javascript - 检查下拉菜单的 Bootstrap 状态
- java - 如何在apache POI中重复标题(灰色区域)
- python - Quandl 不在 Jupyter Notebook 中工作(但在命令提示符下工作)
- php - 是否有技术原因不使用 try catch 来检索可能未设置的属性