Docker应用架构层次Container容器(最底层)Service(同一服务的一组容器,可伸缩架构、负载均衡。可以service命令或stack创建)Stack(相互依赖的一组服务)单机容器服务部
Docker应用架构层次
- Container容器(最底层)
- Service(同一服务的一组容器,可伸缩架构、负载均衡。可以service命令或stack创建)
- 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 --versiondocker-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: - OtherServicenetworks: #网络自动负载均衡 MyNetwork:
服务管理
docker stack deploy -c docker-compose.yml StackName #发布Service Stack(每次执行都会自动热更新stack)docker stack services StackName #罗列stack下的servicedocker stack ps StackName #罗列stack下的taskdocker service ls #服务列表docker service ps 服务名称 #罗列服务下的task(服务包含的容器节点称作task)docker stack rm StackName #下线Service Stack