04.fabric的swarm集群布署:docker-composer v3写法,及swarm注意事项

首先swarm集群为什么使用docker-composer v3来发布:

现在只有v3支持deploy属性(是docker swarm相关配置)

参考:https://docs.docker.com/compose/compose-file/compose-versioning/#version-3 (这里面有v2和v3的配置区别)

docker-composer.yaml文件内容说明:

version: '3'
#这个可以填1.0-3.3据体版本号是否支持要对应的docker版本(越高支持越多,但也删除了不少功能)
#https://docs.docker.com/compose/compose-file/#reference-and-guidelines 支持情况参考此地址

说明:

docker-composer使用swarm容器时很多标签没法使用

1.container_name 容器名称

2.links 关链联接

3.extends (吐血,v3不支持,可能以后会支持)

4. env 环境变量(再吐血....)

现在只举一个docker-compose-zk.yaml配置说明:

version: '3' #使用docker-composer版本3+
services:
  zookeeper0:#这个是service服务名,在一个overlay中可以直接ping zookeeper0可以通
    image: hyperledger/fabric-zookeeper:x86_64-1.0.3
    deploy: #service服务发布信息
      replicas: 1 #应用被复制的份数
      update_config: #更新service的说明
        parallelism: 1 #//TODO
        delay: 10s
      restart_policy:
        condition: on-failure#启动或service服务错误后重启服务
        delay: 5s
        max_attempts: 3 #最多重启3次,超过重启次数最好在portainer中重启,而不是docker start方式
      placement:
        constraints: #使用布署约束,可以指定布署到相应条件下的节点上
#          - node.hostname==fabric_node_01 #hostname可能会被更新或指定,不建议使用这个
          - node.labels.fabric_node_01==fabric_node_01 #指定要安装到node上有labels[fabric_node_01]的机子上
    hostname: zookeeper0 #service的hostname 可有可无
    networks:
      blockchain-network:#这个是overlay的网络配置,指定了使用blockchain-network网络,必须在最外层配置好
        aliases:
          - zookeeper0 #这个指定后可以在overlay网内通过这个名称访问到这个服务(即ping到这个服务)
    environment:
      - ZOO_DATA_DIR=/data #zk的服务生成的目录,这个必须指定,并用volumes指定到服务外
      - ZOO_MY_ID=1 #这个zk集群的本服务id,只要不唯一即可
      - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888 #这个就不说了
    volumes:
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime #映射本地文件夹,指定容器为东8区
      - /opt/fabric_data/fabric_node_01/zk/data:/data 
#映射本地文件夹,应射前一定要先mkdir -p创建好这个文件夹,把关键数据映射出去,服务自动重启后数据不会丢失(相当于服务和存储分离了),这里只用的本机映射的方式,这个是volumes相关的东西,还可以应映到存储云或nfs节点上
#可以自个创建一个volume,文件映射到这个volume上,volume可以加密,云存储,灾难备份等功能
  zookeeper1:
    image: hyperledger/fabric-zookeeper:x86_64-1.0.3
    deploy:
      replicas: 1
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
      placement:
        constraints:
          - node.labels.fabric_node_04==fabric_node_04
    hostname: zookeeper1
    networks:
      blockchain-network:
        aliases:
          - zookeeper1
    environment:
      - ZOO_DATA_DIR=/data 
      - ZOO_MY_ID=2
      - ZOO_SERVERS=server.1=zookeeper0:2888:3888 server.2=zookeeper1:2888:3888
    volumes:
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
      - /opt/fabric_data/fabric_node_04/zk/data:/data
    depends_on:
      - zookeeper0 #容器启动前先要启动zookeeper0
networks: #最外层的网络指定配置,这里可以写多个网络
  blockchain-network:
    external:
      name: blockchain-network

swarm服务要使用overlay网格:

#创建overlay网络
docker network create --driver overlay --subnet=10.199.1.0/24 blockchain-network --attachable 

最后就是端口开放了,这个前面说过了

docker-compser的官方文档地址:https://docs.docker.com/compose/compose-file/

转载于:https://my.oschina.net/yifanxiang/blog/1551975

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值