美文网首页云原生
Docker Remote API实践

Docker Remote API实践

作者: 印随2018 | 来源:发表于2019-06-26 13:28 被阅读8次

使用三种方式实现从docker hub下载镜像,并推送到私有Registry

Docker client

1. docker pull hello-world

2. docker tag hello-world harbor.docker-plus.xyz/app/hello-world

3. docker login harbor.docker-plus.xyz

4. docker push harbor.docker-plus.xyz/app/hello-world

Python SDK

#!/usr/bin/python

import sys
import json

import docker

client = docker.from_env()

try:
    client.ping()
except docker.errors.APIError:
    print("docker connect failed")
    sys.exit(1)

# PULL
for line in client.api.pull('hello-world', stream=True, decode=True):
    print(json.dumps(line, indent=4))

# TAG
repository = 'harbor.docker-plus.xyz/app/hello-world'
try:
    client.api.tag('hello-world', repository, 'latest', force=True)
except docker.errors.APIError:
    print("tag failed")
    sys.exit(1)

auth_config = {
    "username": "admin",
    "password": "Harbor12345"
}
# PUSH
for line in client.api.push(repository, stream=True, decode=True, auth_config=auth_config):
    print(json.dumps(line, indent=4))

Remote API

# PULL
curl -XPOST http://192.168.0.19:2375/images/create?fromImage=hello-world

# TAG
curl -XPOST http://192.168.0.19:2375/images/hello-world/tag?repo=harbor.docker-plus.xyz/app/hello-world

# PUSH
XRA=`echo '{"username": "admin","password": "Harbor12345", "serveraddress": "harbor.docker-plus.xyz"}' | base64 --wrap=0`

curl -XPOST -H "X-Registry-Auth: $XRA" \
http://192.168.0.19:2375/images/harbor.docker-plus.xyz/app/hello-world/push

相关文章

网友评论

    本文标题:Docker Remote API实践

    本文链接:https://www.haomeiwen.com/subject/wmfccctx.html