我是docker的初学者。我想在我的一个docker容器中运行一个dockerengineapi调用,特别是列出所有图像(images/json端点(。我正在尝试解决此问题,并希望通过命令行实时查看此问题。
我很难弄清楚我应该在容器中的curl请求表单中使用什么主机(这篇文章似乎是相关的,但我尝试了所有建议,但都没有成功(。已尝试容器ip(取自ifconfig(、localhost、docker compose yml文件中定义的服务名称。什么都不管用。
这篇帖子似乎指导了如何做到这一点。但这个建议对我来说同样无效:curl --unix-socket /var/run/docker.sock http://images/json
。这将返回{"message":"page not found"}
如有任何帮助,我们将不胜感激。
精。。。在这里找到答案:
curl --unix-socket /run/docker.sock http://docker/images/json
终于为我工作了。
这篇文章谈到了";码头工人";或者从curl版本7.4开始添加另一个伪主机。旧版本不需要它。
最重要的是要明白,能够运行docker命令的人拥有与主机上的根帐户类似的权限。话虽如此,如果你对此很满意,你可以使用";docker中的docker";pattern,只需启动
docker run --privileged=true -v /var/run/docker.sock:/var/run/docker.sock ...
当然,您应该在docker映像中安装docker(以便访问命令(
如果只是列出图像(例如:主机上的简单REST服务器,只能从运行的容器访问(,我建议找到没有上述内容的其他解决方案