Docker原生服务部署

Docker应用架构层次

  1. Container容器(最底层)
  2. Service(同一服务的一组容器,可伸缩架构、负载均衡。可以service命令或stack创建)
  3. Stack(相互依赖的一组服务)

单机容器服务部署 - compose编排式

V2语法编排服务
version: '2'

services:
  MyService:
    image: my_image:tag
    container_name: xxx
    hostname: yyy
    restart: always
    env_file: .env
    environment:
	  - key=val
    ports:
	  - 'xxx:yyy'
    volumes:
      - xxx:yyy
    links:
      - OtherService
服务管理
docker-compose --version
docker-compose 【-f docker-compose.yaml】 up -d 【ServiceName】
docker-compose ps  # 查看compose启动的容器
docker-compose down

集群服务部署,必须在ManageNode上操作

集群服务部署 - service命令式

#部署服务
docker service create
        --name 服务名称  #同一网络内不同服务可通过服务名互访
        --mode replicated|global
        --network 集群网络 #要求overlay网络
        --replicas 副本数
        -p 端口:端口
        --mount type=bind,src=源路径,dst=目标路径
        镜像名称  command

#滚动更新服务
docker service update
        --update-parallelism 并行更新节点数
        --update-delay 更新间隔秒数
        --limit-cpu 0.25  #限额cpu比例
        --reserve-cpu 0.1  #预留cpu比例
        --image 镜像名称
        服务名称

docker service ls #服务列表
docker service ps 服务名称 #罗列服务下的task(服务包含的容器节点称作task)
docker service inspect --pretty 服务名称 #监控指定服务
docker service scale 服务名称=节点数 #服务伸缩
docker service rm 服务名称 #服务下线

集群服务部署 - compose编排式

Docker 1.13开始支持v3 compose语法

v3语法编排服务
version: '3'

services:
  MyService:
    image: my_image:tag
    container_name: xxx
    hostname: yyy
    restart: always
    env_file: .env
    environment:
	  - key=val
    deploy:
      replicas: 5 #service启用副本数
      resources:
        limits:
          cpus: 0.1 #每个节点cpu资源占比
          memory: 50M #每个节点内存资源限额
      restart_policy:
        condition: on-failure
      placement:
        constraints: [node.role == manager]
    ports:
      - 'xxx:yyy'
    networks:
      - MyNetwork #service使用的负载均衡网络(要求overlay网络)
    volumes:
      - xxx:yyy
    depends_on:
      - OtherService

networks: #网络自动负载均衡
  MyNetwork:
服务管理
docker stack deploy -c docker-compose.yml StackName #发布Service Stack(每次执行都会自动热更新stack)

docker stack services StackName #罗列stack下的service
docker stack ps StackName #罗列stack下的task
docker service ls #服务列表
docker service ps 服务名称 #罗列服务下的task(服务包含的容器节点称作task)
docker stack rm StackName #下线Service Stack

转载于:https://my.oschina.net/u/2400083/blog/873028

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值