4

我正在尝试使用 Docker Python API 登录到 Docker 云:

https://docker-py.readthedocs.io/en/stable/client.html#creating-a-client1

网址是什么?什么是港口?

我试图让它与 cloud.docker.com 一起工作,但我对任何注册表服务器都很好,只要它可以免费使用并且我可以使用它从一台计算机上传 Docker 映像并在另一台计算机上运行它们。

我已经使用我自己的本地托管注册表运行了所有内容,但我似乎无法弄清楚如何连接到服务器。托管我自己的注册表比使用现有的注册表服务器更容易,这有点荒谬。

我的代码看起来像这样,但我不确定 args.* 参数应该是什么:

client = docker.DockerClient(base_url=args.docker_registry)
client.login(username=args.docker_user, password=args.docker_password)

我不确定 base_url 需要什么才能登录,并且错误消息根本没有帮助。

你能给我一个有效的例子吗?

4

3 回答 3

4

base_url参数是 Docker 服务器的 URL,而不是 Docker Registry。

尝试类似:

from docker.errors import APIError, TLSParameterError

try:
   client = docker.from_env()
   client.login(username=args.docker_user, password=args.docker_password, registry=args.docker_registry)
except (APIError, TLSParameterError) as err:
   # ...
于 2017-08-13T21:24:07.413 回答
2

以下是我使用 Python 登录 Docker 的方式:

import docker

client = docker.from_env()
client.login(username='USERNAME', password='PASSWORD', email='EMAIL',
                       registry='https://index.docker.io/v1/')

这是它返回的内容:

{'IdentityToken': '', 'Status': 'Login Succeeded'}

所以,这意味着它已经成功登录。

于 2018-09-16T07:18:25.590 回答
1

我还没有弄清楚 cloud.docker.com 的注册表叫什么,但我通过切换到 quay.io 作为我的注册表服务器来让它工作,它与直观的 registry='quay.io' 一起工作

于 2017-08-15T15:05:19.870 回答