我想知道有没有办法在没有docker daemon
的情况下调用Docker API。
我查看了他们的文档以及Docker CLI背后的一些源代码,但无法找到答案。
我想直接对Docker API 进行HTTP / HTTPS调用!我不想安装docker
CLI。这在某种程度上是可行的,你能举个例子吗?
编辑:
我想进行Docker Registry API调用,而不必安装docker
来测试凭据,我稍后会将其用于docker login
命令。
答案 0 :(得分:1)
我认为你的问题有点困惑。您无法在没有 Docker守护程序的情况下调用Docker API ,因为API 是守护程序(或者至少守护程序公开API)。
当然,您可以在没有Docker 客户端的情况下向(控制)API /守护程序发出请求。只需直接在套接字(unix:///var/run/docker.sock)上激活您的请求即可。或者,如果您希望将其公开为HTTP(建议使用S),那么您可以通过更改守护程序启动选项来执行此操作,而是通过HTTP(S)将请求发送到该地址。
答案 1 :(得分:0)
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守护进程。
docker 守护进程使用 Docker Registry API 与 docker registry 进行通信。最新版本是 v2。 docker pull alpine
告诉当前上下文中的守护程序向 DockerHub 的 https://registry-1.docker.io/v2
端点发出 Docker Registry API 调用,而 docker pull registry.gitlab.com/username/image:tag
告诉守护程序发出一个Docker Registry API 调用您的私有 GitLab 容器注册表中的 https://registry.gitlab.com/v2
端点。