2017-08-13 84 views
0

我试图用Python的多克尔API登录到一个码头工人云:登录与泊坞窗的Python API

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

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

我试图让它与cloud.docker.com一起使用,但是我对任何注册服务器都没问题,只要它是免费使用的,我可以使用它从一台计算机上传Docker映像并运行他们在另一个。

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

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

客户端= docker.DockerClient(BASE_URL = args.docker_registry) client.login(用户名= args.docker_user,密码= args.docker_password)

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

你能举个例子吗?

回答

1

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: 
    # ... 
+0

我已经使用docker.from_env()连接到我的本地托管码头注册表。我该如何切换回公共位置? 另外,args.docker_registry应该是什么样子? –

+0

docker.from_env()仅将您连接到Docker服务器。 login()方法的'registry'参数将您连接到指定的注册表URL。 –

+0

我知道。注册表URL应该是什么样子?例如,“https://cloud.docker.com”是托管注册表的网站的URL,但设置registry =“https://cloud.docker.com”会给出错误。我需要做什么才能让它接受注册表? –

0

我还没有想出什么cloud.docker.com的注册表被调用,但我把它切换到quay.io我的注册服务器工作,它使用直观的注册表='quay.io'