ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 语法 ``` Commands: create Create a new service inspect Display detailed information on one or more services logs Fetch the logs of a service or task ls List services ps List the tasks of one or more services rm Remove one or more services rollback Revert changes to a service's configuration scale Scale one or multiple replicated services update Update a service ``` ## 示例 ### 创建一个 server ``` docker service create --replicas 1 --name redis -p 6379:6379 --update-delay 10s redis:3.0.6 ``` ### 每个节点至少运行一个容器 除了 replicated mode ,Service 还提供了一个 global mode ,其作用是强制在每个node上都运行一个且最多一个副本 比如要收集所有容器的日志 在所有 node 上都运行 gliderlabs/logspout` 容器,及时之后有新的node加入,swarm 也会自动在新的node上启动一个 gliderlabs/logspout 副本 ``` docker service create --mode global --name nginx nginx sleep 99999 ``` ### 扩容一个server ``` docker service scale redis=2 ``` 如果扩展时,一致处于 preparing 状态,可能是该节点下载镜像卡住, ### 列出当前集群的服务 ``` docker service ls ``` ### 查看某个服务的运行状态 ``` docker service ps redis ``` ### 滚动升级服务 ``` docker service create --replicas 1 --name redis --update-delay 10s redis:3.0.6 // 升级 docker service update --image redis:3.0.7 redis ``` ### 增加删除环境变量 ``` # 创建服务时指定环境变量 docker service create \ --env VAR=VALUE \ --env-file FILENAME \ ... # 增加、删除环境变量 docker service update \ --env-add VAR=NEW_VALUE \ --env-rm VAR \ .. ```