Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使docker客户端通过http连接到docker守护进程_Http_Docker_Docker Machine - Fatal编程技术网

如何使docker客户端通过http连接到docker守护进程

如何使docker客户端通过http连接到docker守护进程,http,docker,docker-machine,Http,Docker,Docker Machine,我有一个运行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

我有一个运行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
root$curl-vhttp://10.228.38.30:2376/v1.15/version
*在DNS缓存中找不到主机名
*正在尝试10.228.38.30。。。
*连接到10.228.38.30(10.228.38.30)端口2376(0)
>获取/v1.15/version HTTP/1.1
>用户代理:curl/7.38.0
>主持人:10.228.38.30:2376
>接受:*/*
> 
如何告诉docker客户端(即此处的docker机器)通过http而不是https与守护进程通信

我不需要https,因为我在测试环境中。

首先,您需要使用HTTP而不是https

然后,您可以添加一台docker机器,带有如下内容:

$ docker-machine create \
  --driver generic \
  --generic-ip-address=203.0.113.81 \
  --generic-ssh-key ~/.ssh/id_rsa \
  vm

哼,我的docker主机在ssh堡垒后面。有没有办法在docker machine命令中为ssh配置ProxyCommand?在Dockout Docker中找不到它。它似乎正是你想要的。谢谢你的回复。我已经检查了rdocker,但我想它在我的情况下不可用,因为我无法打开尽可能多的ssh隧道实例。目前,我停止集中管理我的Docker实例,我将切换到Docker swarm,它可以解决我的所有问题。