1

在 OSX 上,我正在创建一个 docker-machine,如下所示:

docker-machine create --driver=virtualbox --tls-san dockerhost docker

并添加到/etc/hosts(我也尝试过相反的方法):

192.168.99.100 dockerhost

并使用 docker-py 连接到 docker-machine:

machine_name = 'docker'
machine_ip = '192.168.99.100' #from docker-machine env docker
CERTS = os.path.join(os.path.expanduser('~'), '.docker', 'machine', 'machines', machine_name)
tls_config = docker.tls.TLSConfig(
    client_cert=(os.path.join(CERTS, 'cert.pem'), os.path.join(CERTS,'key.pem')),
    ca_cert=os.path.join(CERTS, 'ca.pem'),
    verify=True
)
cli = docker.Client(base_url='https://' + machine_ip + ':2376' , tls=tls_config)

这给出了错误:

requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://192.168.99.100:2376/v1.21/containers/create

我不知道为什么请求找不到机器。知道我的设置有什么问题吗?

4

1 回答 1

0

我遇到过同样的问题。这就是我所做的:

我的错误消息也不再有这个:

docker.errors.APIError: 400 Client Error: Bad Request ("b'client version 1.2.1 is too old. Minimum supported API version is 1.12, please upgrade your client to a newer version'")

我使用升级了 docker docker-machine upgrade default,然后将版本添加到您的代码中:

cli = docker.Client(base_url='https://' + machine_ip + ':2376' , tls=tls_config, version='1.12.1')

print (cli.images())返回我拥有的图像

于 2016-09-01T18:16:45.637 回答