我如何使用REST API与Docker引擎进行交互?

您可能知道,我们可以使用命令docker images来列出我们在本地主机上的docker镜像。

现在,我想通过在Firefox或Chrome中发送HTTP GET请求来从远程服务器获取相同的信息。 docker工人提供一些REST API来做到这一点?

我做了很多search。 例如: https : //docs.docker.com/engine/api/get-started/#run-a-container-in-the-background

它提供了一个这样的方式:

 curl --unix-socket /var/run/docker.sock http:/v1.24/containers/json 

我知道很less关于unix socket,我不认为这是我想要的。 URL(http:/v1.24/containers/json)太奇怪了,甚至没有一个服务器名称。 我不认为它可以在远程服务器上工作。 (它可以在本地服务器上运行)

任何一位先生能帮我吗? 有没有关于这个话题的官方文档docker?

你需要做的是在端口上公开docker守护进程。

您可以configurationDocker守护进程以使用多个-H选项同时侦听多个套接字:

使用默认的unix套接字进行侦听,并在此主机上使用2个特定的IP地址。

$ sudo dockerd -H unix:///var/run/docker.sock -H tcp://192.168.59.106 -H tcp://10.10.10.2

Docker客户端将遵循DOCKER_HOST环境variables来为客户端设置-H标志。 使用以下命令之一:

https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-socket-option

你需要通过创build一个systemd的dropin来做到这一点

 mkdir -p /etc/systemd/system/docker.service.d/ cat > /etc/systemd/system/docker.service.d/10_docker.conf <<EOF [Service] ExecStart= ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2376 EOF 

然后重新加载并重新启动docker

 systemctl daemon-reload systemctl restart docker 

注意:这样你会暴露你的主机,你不应该在生产中这样做。 请在我之前分享的链接上阅读更多