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()
原文地址:https://www.cnblogs.com/reblue520/p/14667782.html