首页 > 解决方案 > 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]

标签: dockerdocker-compose

解决方案


推荐阅读