2

我想知道有没有办法在没有docker daemon.

我浏览了他们的文档和 Docker CLI 背后的一些源代码,但找不到答案。

我想直接对 Docker API 进行 HTTP/HTTPS 调用!我不想安装dockerCLI。这有可能吗?你能举个例子吗?

编辑:

我想进行 Docker Registry API 调用,而无需安装docker来测试凭据,稍后我将用于docker login命令。

4

2 回答 2

1

我觉得你的问题有点混乱。没有Docker 守护程序就无法调用 Docker API ,因为 API守护程序(或者至少,守护程序公开了 API)。

你当然可以在没有 Docker客户端的情况下请求(控制)API / 守护进程。只需直接在套接字 (unix:///var/run/docker.sock) 上触发您的请求。或者,如果您想将其公开为 HTTP(S 推荐),那么您可以通过更改守护程序启动选项来做到这一点,而是通过 HTTP(S)向该地址发送请求。

于 2016-05-19T15:51:27.160 回答
0

docker CLI <==[ Docker 引擎 API ]==> dockerd

docker CLI 使用 Docker Engine API 与 docker 守护进程通信。最新版本为v1.41

CLI 和守护进程不需要在同一台机器上。通过设置 docker 上下文,您可以指示 docker CLI 与远程 docker 守护进程通信,因此无需在本地安装 Docker。同样,如果您使用curl或任何其他 SDK 发出 Docker Engine API 调用,您可以使用 unix:///var/run/docker.sock 作为本地守护程序(如果已安装)或远程守护程序的 URL。

dockerd <==[ Docker 注册表 API ]==> Docker 注册表

docker 守护进程使用 Docker Registry API 与 docker 注册表通信。最新版本是v2。Adocker pull alpine告诉当前上下文https://registry-1.docker.io/v2中的守护进程向DockerHub的端点发出 Docker Registry API 调用,同时docker pull registry.gitlab.com/username/image:tag告诉守护进程向https://registry.gitlab.com/v2您的私有 GitLab 容器注册表中的端点发出 Docker Registry API 调用。

于 2021-02-12T21:03:31.457 回答