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()