【问题标题】:Connect to docker-machine using docker-py (OSX)使用 docker-py (OSX) 连接到 docker-machine
【发布时间】:2016-03-09 15:00:44
【问题描述】:

在 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

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

【问题讨论】:

    标签: macos docker docker-machine dockerpy


    【解决方案1】:

    我有同样的问题。这就是我所做的:

    我的错误信息也不再是这个了:

    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-machine upgrade default 升级了 docker,然后将版本添加到您的代码中:

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

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

    【讨论】:

      猜你喜欢
      • 2016-05-24
      • 2016-04-23
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-14
      • 1970-01-01
      相关资源
      最近更新 更多