我是码头工人的新手。我想使用docker remote api,但是我失败了。首先,我使用远程API客户端库docker-java。抛出异常是:
The server failed to respond with a valid HTTP response
更多细节是here。所以,我想知道它有什么问题。我使用远程rest api连接我的docker tutorial。但它还没有奏效。我使用命令:
curl -v http://192.168.59.103:2376/info
并告诉我这个信息:
* Hostname was NOT found in DNS cache
* Trying 192.168.59.103...
* Connected to 192.168.59.103 (192.168.59.103) port 2376 (#0)
> GET /info HTTP/1.1
> User-Agent: curl/7.37.1
> Host: 192.168.59.103:2376
> Accept: */*
>
* Connection #0 to host 192.168.59.103 left intact
我认为它可以连接到这个ip,但无效的响应。谁能理解这意味着什么?然后我在谷歌找到了问题。有人说需要将ip:2376添加到virtualBox。我已经做了。但是,它仍然没有奏效。我只想用rest api来请求我的码头工人。当我使用此命令时:
curl -v http://192.168.59.103:2376/info
我希望它能告诉我正常的信息。有人告诉我,我需要在没有TLS的情况下制作它。但是,我不知道该怎么做。请一步一步教我。我是码头工人的新手。谢谢。我使用的是Mac OS X. Docker Api是1.19,客户端版本是1.7.0。
答案 0 :(得分:2)
你试图在https端口2376上访问docker,如果你想在不使用https的情况下使用curl,你必须点击正常http的2375端口,但默认情况下它被禁用。
但您可以先运行
启用它boot2docker ssh
然后逐个运行这些命令
cp /etc/init.d/docker ~/docker.bak
sudo sed -i 's/DOCKER_TLS:=auto/DOCKER_TLS:=no/1' /etc/init.d/docker
sudo /etc/init.d/docker stop
sudo /etc/init.d/docker start
这会禁用https,现在你可以执行
curl -v http://192.168.59.103:2375/info
注意不同的端口!
您仍然希望使用正常的docker
命令,因此请转到.bashrc
并更改此网址:
export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/kevinsimper/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
到
export DOCKER_HOST=tcp://192.168.59.103:2375
export DOCKER_CERT_PATH=/Users/kevinsimper/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=0