zoukankan      html  css  js  c++  java
  • Marathon基于有认证的harbor仓库创建应用

    Marathon基于有认证的harbor仓库创建应用

    参考:https://mesosphere.github.io/marathon/docs/native-docker-private-registry.html
     
    1.首先登录harbor仓库
    # docker login harbor.chinasoft.com
    输入账号密码后会把相关的信息保存到 用户目录下的config.json文件中
     
    2.将这个文件和.docker目录打包放在http服务器中让这个文件可以下载
    # cat .docker/config.json 
    {
        "auths": {
            "192.168.254.162": {
                "auth": "xxx="
            }
        }
    }

    3.在marathonapi中引用即可

    # _*_ coding:utf-8 _*_
    # __author__ == 'jack'
    # __date__ == '2021-04-08 3:54 PM'
    import requests
    from flask import json
    
    
    headers={'Content-type':'application/json'}
    
    
    class MarathonApi():
    
        def test_ping(self):
            url = "http://192.168.254.161:8080/v2/info"
            r = requests.get(url, headers=headers)
    
            print(r.status_code)
            print(r.json())
    
    
        def test_create_docker_app(self):
            url = "http://192.168.254.161:8080/v2/apps"
    
            app={
                "id": "ch2",
                "cmd": "python3 -m http.server 8080",
                "cpus": 0.5,
                "mem": 32.0,
                "networks": [ {"mode": "container/bridge" }],
                "container": {
                    "type":"DOCKER",
                    "docker":{ "image": "python:3" },
                    "portMappings": [{"containerPort": 8080, "hostPort": 0 }]
                }
            }
    
            r = requests.post(url, headers=headers,json=app)
            print(r.status_code)
            print(json.dumps(r.json(), indent=4))
    
        def test_create_docker_app_v1(self):
            url = "http://192.168.254.161:8080/v2/apps"
    
            app={
                "id": "ch4",
                "cmd": "python app.py",
                "cpus": 0.5,
                "mem": 32.0,
                "networks": [ {"mode": "container/bridge" }],
                # "uris": [
                #     "http://192.168.254.161/db-harbor-admin.tar.gz"
                # ],
                "container": {
                    "type":"DOCKER",
    
                    "docker":{ "image": "63.159.217.162/mesos/imooc_marathon:v1.0.1" },
                    # "docker":{ "image": "192.168.254.161:5000/imooc_marathon:v1.0.6" },     # 不带验证的docker私有仓库
                    "portMappings": [{"containerPort": 5080, "hostPort": 0 }]
                },
            # 带验证的harbor仓库
                "uris": [
                    "http://192.168.254.161/db-harbor-admin.tar.gz"
                ]
            }
    
            r = requests.post(url, headers=headers,json=app)
            print(r.status_code)
            print(json.dumps(r.json(), indent=4))
    
    
    if __name__ == '__main__':
        # MarathonApi().test_ping()
        # MarathonApi().test_create_docker_app()
        MarathonApi().test_create_docker_app_v1()
  • 相关阅读:
    妹妹
    小猴和北极熊
    盛趣->盛大
    运维
    操之过急
    修马路
    博人传
    醉酒
    【跨域】SpringBoot跨域,拦截器中,第一次获取的请求头为NULL,发送两次请求的处理方式
    【Linux】Linux安装Tomcat
  • 原文地址:https://www.cnblogs.com/reblue520/p/14667782.html
Copyright © 2011-2022 走看看