如何调用docker swarm service的API来创建及更新服务

作者:佚名 上传时间:2019-05-14 版权申诉

平衡的推进,先作一个原型吧。

#!/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来创建及更新服务

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
如何调用docker swarm serviceAPI创建更新服务
平衡的推进,先作一个原型吧。 #!/usr/bin/env python# -*- coding: utf-8 -*-import requestsimport json
Docker Swarm实现服务滚动更新示例代码
一、什么是Docker Swarm? Docker Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机
PDF
201KB
2021-02-01 08:14
Web Service创建调用
本资源是本人中间件课程的大作业,内容包括了:什么是WebService?WebService的应用场所;如何创建一个简单的WebService?如何调用Web服务?该文档对如何创建及如何调用WebSe
DOC
0B
2019-08-17 20:12
docker_swarm_service_componse.yml
docker swarm部署分布式微服务编排文件示例
YML
4KB
2021-04-20 07:28
vagrant docker swarm cluster用于创建Docker Swarm模式集群Vagrantfile源码
vagrant-docker-swarm-cluster:用于创建Docker Swarm模式集群的Vagrantfile
ZIP
2KB
2021-02-09 13:58
ansible docker systemd servicedocker容器创建Systemd服务角色源码
ansible-docker-systemd-service:为docker容器创建Systemd服务的角色
ZIP
10KB
2021-02-01 23:09
docker深入2-UI之portainer通过API更新serviceACL
docker深入2-UI之portainer通过API来更新service的ACL2018/11/5准备工作阅读文档resource_controlsManage access
已部署使用webhooks更新Kubernetes部署和Docker Swarm服务源码
部署 使用Webhooks更新Kubernetes部署和Docker Swarm服务 Kubernetes 创建服务帐户: kubectl create serviceaccount deployd的
ZIP
20.35MB
2021-02-06 12:32
BAPI创建发布web service发布abap调用
本文档主要是介绍BAPI的创建,有详细的截图及描述。
DOC
922KB
2020-11-17 02:33
创建Window服务Service调试_源码
创建Window服务(Service)及调试-源码创建Window服务(Service)及调试-源码
ZIP
0B
2019-05-27 10:43