问题标签 [docker-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
55 浏览

docker - 如何使用 REST API 在 Docker-Hub 中找到公共映像(如 ubuntu)?

以前我用

https://registry.hub.docker.com/v1/search?q=ubuntu&n=1 并得到

但现在我得到了过时的图像

我现在怎样才能得到它?

我在这里没有找到任何信息:https ://docs.docker.com/v1.7/reference/api/docker-io_api/

提前致谢

0 投票
1 回答
359 浏览

docker - CentOS 7 中带有 Docker 登录的 Docker API 版本

当我启动 Ansible 角色以在 CentOS 7 VM 中安装 Docker 时遇到问题。

任务运行时docker-login出现以下错误:

"msg": "Docker API 错误:客户端比服务器更新(客户端 API 版本:1.24,服务器 API 版本:1.22)"

这就是 Ansible 角色:

这将安装 docker 1.10.3 版本和 API 版本 1.22。

0 投票
1 回答
1092 浏览

curl - Docker Remote API exec:命令退出代码

我正在使用 Docker Remote API 运行一些命令,我​​意识到即使我传递给它的命令失败,状态也是 200。

例子:

这将返回一个 ID。

POST /exec/b64592543bc59e08de4d1d11c8a68415148a608b00aa62448284635f47eaa734/start HTTP/1.1 Host: myip:2375 User-Agent: curl/7.47.1 Accept: / Content-Type: application/json Content-Length: 28

HTTP/1.1 200 OK 内容类型:application/vnd.docker.raw-stream exec:“错误”:$PATH 中找不到可执行文件

状态码是 200,那么有没有其他方法可以知道命令在 exec 上运行是否成功?

我目前的解决方法是将这样的东西作为命令传递:

bash -c 'command && echo SUCCEEDED_FLAG || echo FAILED_FLAG' 稍后再搜索flag

PS:我使用邮递员和卷曲来测试这个。

0 投票
1 回答
2353 浏览

docker - exec `curl --unix-socket /var/run/docker.sock http://containers/json` 时出现“404 页面未找到”

我的 docker 守护进程有什么问题吗?如何从 docker unix-socket 获取容器信息?docker 守护进程绝对启动。

0 投票
1 回答
5184 浏览

docker-registry - 如何从私有 Docker Registry 中“删除”图像?

我正在为 docker 编写一个 API 客户端,而注册表 API 很难使用。我正在尝试从注册表中删除图像,但是我不断收到此错误

我的步骤如下,

编辑

自从我找到REGISTRY_STORAGE_DELETE_ENABLED变量以来,我正在更新我的问题。

我现在像这样运行注册表容器,

这会产生一个新的错误,

显然,UNSUPPORTED错误实际上意味着特定功能被禁用。

但是我读到的所有内容都说删除清单的实体引用(来自 HEAD 请求的摘要)应该删除存储库。我只想使我的私人注册表中的存储库无法访问,我认为已删除。

如何从私有注册表中删除图像,使其无法被拉取?

0 投票
1 回答
717 浏览

docker - Docker 群模式 API 身份验证

在尝试 docker swarm mode api 之前,我在https://docs.docker.com/engine/security/https/的帮助下设置了带有 tls 身份验证的 docker remote api 。现在我的 /usr/lib/systemd/system/docker.service 配置了

ExecStart=/usr/bin/dockerd -H unix://var/run/docker.sock --tlsverify --tlscacert=/root/.docker/ca.pem --tlscert=/root/.docker/new-certs /server-cert.pem --tlskey=/root/.docker/new-certs/server-key.pem -H=0.0.0.0:2376

它工作得很好,我能够运行下面的命令并得到结果

curl https://$HOSTNAME:2376/tasks --cert ~/.docker/new-certs/cert.pem --key ~/.docker/new-certs/key.pem --cacert ~/.docker/new -certs/ca.pem

现在我创建了一个群体

码头工人群初始化

*:2377 现已上市

但由于某种原因,下面的命令返回“curl:(60) Peer 的证书颁发者已被标记为用户不信任”

curl https://$HOSTNAME:2377/tasks --cert ~/.docker/new-certs/cert.pem --key ~/.docker/new-certs/key.pem --cacert ~/.docker/new -certs/ca.pem

我找不到这种场景的任何合适的例子,所有这些都是关于 legacy swarm 的,例如https://docs.docker.com/swarm/configure-tls

0 投票
3 回答
2414 浏览

json - Docker API 无法应用 json 过滤器

根据https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/list-tasks,过滤器只能用于获取具有特定服务名称的正在运行的容器。出于某种原因,我得到了所有任务的完整列表,无论它们的名称或期望的状态如何。我找不到任何将 curl 与带有 Docker API 的 JSON 请求一起使用的适当示例。我正在使用以下命令:

一个)

返回一切

B)试图从Docker 远程 API 过滤器退出

这个返回“curl: (60) Peer's Certificate issuer is not recognize.”,所以我猜 curl 请求格式不正确。

我在 Docker 论坛上问过,他们帮了一点忙。我很惊讶互联网上没有关于如何使用 Docker API 和 curl 的适当文档,或者它是如此明显并且我不明白什么?

0 投票
2 回答
171 浏览

docker - 我的电脑重启后 Docker 远程 api 不重启

上周我努力docker remote api工作。由于它在 VM 上运行,因此我从那时起就没有重新启动我的 VM。今天我终于重新启动了我的虚拟机,它不再工作了(docker 和 docker-compose 工作正常,但不是docker remote api)。我的 docker init 文件如下所示/etc/init/docker.conf

上次我在这里进行了设置

我试着nmap看看是否port 4243打开。

如您所见,端口 4232 未打开。

当我运行时:

我也运行这个:

我多次重新启动计算机并尝试了很多事情,但都没有成功。我已经有一个名为 docker 的组,我的用户在:

请告诉我有什么问题。

0 投票
1 回答
2519 浏览

docker - 在 docker 中如何使用 Rest API 创建服务?

我只想使用 docker 创建一个服务。我使用命令行创建,但我没有发现做同样的事情。抱歉,如果这是一个愚蠢的问题,请帮助我是初学者

0 投票
3 回答
11379 浏览

docker - 如何在 Centos 7 上公开 Docker 远程 API?

在 ubuntu 上,我可以进入/etc/init/docker.conf并输入DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'以获取 json 数据以显示在我的浏览器上,但我该如何为 Centos 做呢?

我尝试在其中创建一个文件/etc/sysconfig/docker并将其放入other_args="-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock"文件中并重新启动 docker,但它什么也没做。