gpt4 book ai didi

java - 如何使用 boot2docker 在 mac OS X 中启用 docker Remote api Rest?

转载 作者:行者123 更新时间:2023-11-30 03:21:21 25 4
gpt4 key购买 nike

我是 jetty worker 的新手。我想使用 docker Remote api,但失败了。首先,我使用docker-java那是远程API客户端库。它抛出的异常是:

The server failed to respond with a valid HTTP response

更多详细信息是here .所以,我想知道它出了什么问题。我使用远程 REST API 从此 tutorial 连接我的 docker 。但还没有发挥作用。我使用命令:

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,但没有有效的响应。谁能明白这意味着什么?然后我在谷歌上找到了这个问题。有人说需要在virtualBox中添加ip:2376。我已经做了。但是,仍然没有成功。我只想使用rest api 来请求我的docker。当我使用这个命令时:

curl -v http://192.168.59.103:2376/info

我希望它能显示正常的信息。有人告诉我我需要在没有 TLS 的情况下完成它。但是,我不知道该怎么办。请一步步教我。我对 jetty worker 真的很陌生。谢谢。我使用的是Mac OS X。docker Api是1.19,客户端版本是1.7.0。

最佳答案

您正在尝试在https端口2376上访问docker,如果您想在没有https的情况下使用curl,则必须访问2375端口,这是普通的http端口,但默认情况下它是禁用的。

但是您可以通过首先运行来启用它

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 并更改此 url:

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

关于java - 如何使用 boot2docker 在 mac OS X 中启用 docker Remote api Rest?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31264333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com