Docker swarm实战总结( 二 )


docker config create jmdiservice-Application.properties ~/local/application.properties # 为创建服务所引用

Docker swarm实战总结

文章插图
 
四、Docker service
Docker swarm实战总结

文章插图
 
服务是自 Docker 1.12 后新引入的概念,并且仅适用于 Swarm 模式 。
使用服务仍能够配置大多数熟悉的容器属性,比如容器名、端口映射、接入网络和镜像 。
此外还增加了额外的特性,比如可以声明应用服务的期望状态,将其告知 Docker 后,Docker 会负责进行服务的部署和管理 。
更多概念推荐>>>Docker管理工具-Swarm
服务创建docker service create --with-registry-auth --mode global --name jmdiservice --config source=jmdiservice-application.properties,target=/root/application.properties --mount type=bind,source=/opt/lib,destination=/root/lib --env JAVA_OPTS="-Xms1024m -Xmx1024m" --publish 20036:20036 -td xx.xx.xx.xx:5000/zwx/jmdiservice:1123命令详解:【Docker swarm实战总结】--with-registry-auth:将registry身份验证详细信息发送给集群代理 。
--mode global:全局模式,在这种模式下,每个节点上仅运行一个副本 。
另一种是复制模式(--replicas 3),这种模式会部署期望数量的服务副本,并尽可能均匀地将各个副本分布在整个集群中 。
--name:服务名称 。(避免使用符号,容易解析错误)
--config:指定要向服务公开的配置 。(添加配置参考docker config create)
--mount:将文件系统挂载附加到服务 。(需要保留/读取的容器外信息)
--env:设置环境变量 。
--publish:将端口发布为节点端口 。(默认把需要发布的端口映射到本地)
-td:分配伪TTY,并后台运行 。
注意:镜像地址、名称、标签一定填写正确
服务更新:docker service update --args "ping www.baidu.com" redis # 添加参数
docker service scale redis=4 # 为服务扩(缩)容scale
docker service update --image redis:3.0.7 redis # 更新服务的镜像版本
# 回滚服务
五、Docker stack大规模场景下的多服务部署和管理是一件很难的事情,Docker Stack由此而生 。
Stack 通过提供期望状态、滚动升级、简单易用、扩缩容、健康检查等特性简化了应用的管理,这些功能都封装在一个完美的声明式模型当中 。
Stack 能够在单个声明文件中定义复杂的多服务应用,还提供了简单的方式来部署应用并管理其完整的生命周期: 初始化部署 -> 健康检查 -> 扩容 -> 更新 -> 回滚  。
步骤很简单,在 Compose 文件中定义应用,然后通过 docker stack deploy 命令完成部署和管理 。
export logpath=/home/jhmyPro/logs
export tag=latest # 使用环境变量,增强可用性
docker stack deploy --with-registry-auth -c docker-compose.yml QS
Docker swarm实战总结

文章插图
 
# file: docker-compose.ymlversion: "3.7"services:JmDiService:# 服务名image: xx.xx.xx.xx:5000/zwx/jmdiservice:${tag}environment:# 环境变量LOG_PATH: ${logpath}PKG_NAME: "JmDiService"JAVA_OPTS: "-Xms512m -Xmx1024m"networks:# 网络设置overlay:ports:# 端口映射 [宿主机:容器]- 20036:20036configs:# 读取配置 [配置名:容器]- source: JmDiService-application.propertiestarget: /root/application.propertiesvolumes:# 挂载数据卷 [宿主机:容器]- ${logpath}:${logpath}- /opt/lib:/root/lib- /usr/local/Nginx/html/clientexe:/usr/local/nginx/html/clientexedeploy:# 部署设置mode: replicatedreplicas: 3restart_policy:# 重启策略 [条件,延时,最大次数,检测时间]condition: on-failuredelay: 5smax_attempts: 3window: 30supdate_config:# 升级配置 [并发数,延时,失败处理,监听时间,更新规则]parallelism: 1delay: 5sfailure_action: rollbackmonitor: 5sorder: start-firstresources:# 资源控制 [cpu,mem]limits:#cpus: '0.2'memory: 1024Mconfigs:# 定义配置JmDiService-application.properties:external: truenetworks:# 定义网络overlay:作者: Leozhang gg
出处: https://www.cnblogs.com/leozhanggg/p/12061360.html




推荐阅读