如何调用docker swarm service的API来创建及更新服务
平衡的推进,先作一个原型吧。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
#定义docker swarm的管理节点ip,端口号,API版本,服务名, 服务URL
#在后期集成到自动化部署时,需要精简数据结构,完善data, 增加精准判断及空间回收
#API更多用途参考: https://docs.docker.com/engine/api/v1.29/
docker_swarm_ip_port = "ip:port"
docker_swarm_api_version = "v1.29"
docker_swarm_service_name = "tomcatbv"
get_service_url = "http://%s/%s/services/%s" %(docker_swarm_ip_port, docker_swarm_api_version, docker_swarm_service_name)
data = {
"Name": "tomcatbv",
"TaskTemplate": {
"ContainerSpec": {
"Image": "harbor_op/project_name/tomcat:20170620demo",
},
"Placement": {},
"RestartPolicy": {
"Condition": "on-failure",
"Delay": 10000000000,
"MaxAttempts": 10
}
},
"Mode": {
"Replicated": {
"Replicas": 1
}
},
"UpdateConfig": {
"Parallelism": 2,
"FailureAction": "pause",
},
"RollbackConfig": {
"Parallelism": 1,
},
"Labels": {
"foo": "bar"
}
}
#创建docker swarm service服务
def create_service():
url = "http://%s/%s/services/create" %(docker_swarm_ip_port, docker_swarm_api_version)
data_json = json.dumps(data)
r = requests.post(url, data=data_json)
print r.text
if r.status_code == 201:
print "created ok"
else:
print "create error"
sys.exit()
#更新docker swarm service服务
def update_service(version_index):
url = "http://%s/%s/services/%s/update?version=%s" %(docker_swarm_ip_port, docker_swarm_api_version, docker_swarm_service_name, version_index)
data_json = json.dumps(data)
r = requests.post(url, data=data_json)
print version_index, r.text, r.status_code
if r.status_code == 200:
print "updated ok"
else:
print "update error"
sys.exit()
def main():
get_service_url = "http://%s/%s/services/%s" %(docker_swarm_ip_port, docker_swarm_api_version, docker_swarm_service_name)
r = requests.get(get_service_url)
print get_service_url, r.status_code, r.text
if r.status_code != 200:
create_service()
else:
version_index = eval(r.text)["Version"]["Index"]
update_service(version_index)
if __name__ == "__main__":
main()

如何调用docker swarm service的API来创建及更新服务的更多相关文章
- docker swarm集群搭建以及使用滚动更新
基础环境,三台虚拟机 172.17.3.70 172.17.3.71 172.17.3.72 系统配置:centos 7,关闭selinux 需要优化的基础配置: [root@sw1 ~]# vim ...
- docker swarm实现java项目的发布/滚动更新/回滚/镜像管理
使用docker swarm滚动更新java项目,部署集群,这一切的前提是使用Jenkins+maven进行项目打包,分发等功能 具体可以参考我的另外三篇文章 https://www.cnblogs. ...
- Docker Swarm(七)Scale 扩(缩)容服务
扩(缩)容服务 扩容服务 Service还提供了复制(类似kubernetes里的副本)功能.可以通过 docker service scale 命令来设置服务中容器的副本数: docker serv ...
- Docker Swarm Mode 学习笔记(创建 Swarm 集群)
Swarm 集群由管理节点与工作节点组成. 初始化集群 使用命令:docker swarm init 如果你的 Docker 主机有多个网卡, 拥有多个 IP 地址, 必须使用 --advertise ...
- 30 docker swarm service 的创建维护和水平拓展
运行环境在上两篇文章中已经搭建 1. 创建一个service (与 docker run 类似 ,创建一个 container) docker service create --name demo b ...
- Docker Swarm(六)Label 节点标签与服务约束
前言 多节点 Swarm 集群下,可能节点的配置不同(比如 CPU.内存等),部署着不同类型的服务(比如 Web服务.Job服务等),当这些服务以 Service 或者 Stack 的形式部署到集群, ...
- Docker swarm 获取service的container信息
我们可以通过docker service create创建服务,例如: docker service create --name mysql mysql:latest 服务创建好后,如何来获取该ser ...
- Docker三剑客之Docker Swarm
一.什么是Docker Swarm Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/s ...
- docker swarm英文文档学习-3-开始
https://docs.docker.com/engine/swarm/swarm-tutorial/ 1)Getting started with swarm mode 本教程向你介绍Docker ...
随机推荐
- lintcode-104-合并k个排序链表
104-合并k个排序链表 合并k个排序链表,并且返回合并后的排序链表.尝试分析和描述其复杂度. 样例 给出3个排序链表[2->4->null,null,-1->null],返回 -1 ...
- 找jar包的网址
http://search.maven.org/#search%7Cga%7C1%7Cmybatis http://mvnrepository.com/
- js获取上传文件内容
js 获取上传文件的字节数及内容 <div> 上传文件 : <input type="file" name = "file" id = &qu ...
- [剑指Offer] 36.两个链表的第一个公共结点
题目描述 输入两个链表,找出它们的第一个公共结点. [思路]找出两个链表的长度,然后让长的走两个链表的长度差,然后再一起走(因为两个链表用公共的尾部). /* struct ListNode { in ...
- 每个分组函数相当于一个for循环 将集合的变量不断遍历
每个分组函数相当于一个for循环 将集合的变量不断遍历
- git使用笔记(八)团队协作
By francis_hao Nov 24,2016 本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可.欢迎转载,请注明出处 ...
- ios webapp调试神器MIHTool
android平台有直接用chrome beta就可以调试,具体操作办法可以查看这篇教程<Android 设备 Chrome 远程调试>Mac的高富帅直接可以用safari提供“web检查 ...
- Liberty中应用的contextroot
参考:http://www-01.ibm.com/support/knowledgecenter/api/content/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ ...
- [BZOJ1024][SCOI2009]生日快乐解题报告
Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕.现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋 ...
- 【洛谷 P1337】[JSOI2004]平衡点 / 吊打XXX (模拟退火)
题目链接 正解就算了吧,谁叫我理生化 语数外 政史地都菜呢 模拟退火真玄学,不知道发生了什么就跑出答案了,原理就算了吧,能用(pianfen)就好. 当重物平衡时,势能一定是最小的,于是当我随机出一个 ...