我有一台运行 docker 守护进程的主机,带有这些选项:
dockerd -H tcp://0.0.0.0:2376 ...
我想从远程主机使用 docker-machine 连接到此实例的 docker API,但我总是收到以下消息:
http: server gave HTTP response to HTTPS client
我的主机通过 http 响应良好:
root$ curl -v http://10.228.38.30:2376/v1.15/version
* Hostname was NOT found in DNS cache
* Trying 10.228.38.30...
* Connected to 10.228.38.30 (10.228.38.30) port 2376 (#0)
> GET /v1.15/version HTTP/1.1
> User-Agent: curl/7.38.0
> Host: 10.228.38.30:2376
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
* Server Docker/1.12.3 (linux) is not blacklisted
< Server: Docker/1.12.3 (linux)
< Date: Wed, 14 Dec 2016 12:25:45 GMT
< Content-Length: 196
<
{"Version":"1.12.3","ApiVersion":"1.24","GitCommit":"6b644ec","GoVersion":"go1.6.3","Os":"linux","Arch":"amd64","KernelVersion":"3.16.0-4-amd64","BuildTime":"2016-10-26T21:39:14.007365648+00:00"}
* Connection #0 to host 10.228.38.30 left intact
如何告诉 docker 客户端(即这里的 docker-machine)通过 http 而不是 https 与守护进程对话?
我不需要 https,因为我在测试环境中。
最佳答案
首先你需要configure your Docker daemon使用 HTTP 而不是 HTTPS。
然后你可以添加一个带有 generic driver 的 docker 机器,像这样:
$ docker-machine create \
--driver generic \
--generic-ip-address=203.0.113.81 \
--generic-ssh-key ~/.ssh/id_rsa \
vm
关于http - 如何使docker客户端通过http连接到docker守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41144726/