0

我是码头工人的初学者。我想从我的一个 docker 容器中运行 docker 引擎 api 调用——特别是列出所有图像(图像/json 端点)。我正在尝试解决问题,并希望从命令行实时查看问题。

我正在努力弄清楚我应该在容器内的 curl 请求表单中使用什么主机(这篇文章似乎是相关的,但我尝试了那里建议的所有内容但没有成功)。已尝试容器 ip(取自 ifconfig)、localhost、docker-compose yml 文件中定义的服务名称。没有任何效果。

这篇文章似乎指导如何做到这一点。但同样的建议对我不起作用:curl --unix-socket /var/run/docker.sock http://images/json。这返回{"message":"page not found"}

任何帮助将不胜感激。

4

2 回答 2

0

啊...在这里找到了答案:

curl --unix-socket /run/docker.sock http://docker/images/json终于为我工作了。

这篇文章讨论了从 curl 版本 7.4 开始添加“docker”或另一个虚拟主机的需求。旧版本不需要它。

于 2021-03-24T09:56:58.890 回答
-1

最重要的是要了解可以运行 docker 命令的人具有类似于主机上的 root 帐户的权限。话虽如此,如果您对此感到满意,则可以使用“docker-in-docker”模式,只需开始

docker run --privileged=true  -v /var/run/docker.sock:/var/run/docker.sock ...

当然,您应该在 docker 映像中安装 docker(以访问该命令)

如果只是列出图像(例如:主机上的简单 REST 服务器,只能从正在运行的容器访问),我会建议找到没有上述内容的其他解决方案

于 2021-03-24T09:43:14.700 回答