如何使用REST API设置Docker容器的名称

卡兰塔尔

我正在尝试通过REST API创建和启动容器。也就是说,使用以下API:

curl --http1.0 --request POST --header "Content-Type: application.json" http://$DOCKER_HOST:4243/containers/create --data @create.json

其中create.json是具有所需属性的JSON文件。我想给容器指定一个特定的名称。可以通过docker CLI在run命令上使用--name参数来执行此操作:

docker run --name "my_name" my_image

用于创建容器的文档(https://docs.docker.com/reference/api/docker_remote_api_v1.15/#create-a-container)提供了一个示例JSON有效负载。名称属性未列出。我为name属性尝试了以下变体:

"Name": "my_name"
"Names": [ "my_name" ]
"Names": [ "/my_name" ]
"Name": "/my_name"

一切都无济于事。变体受查询结果的启发:

curl --http1.0 http://$DOCKER_HOST:4243/containers/json

返回的条目包括:

"Names":["/elegant_mccarthy"]
克里斯·麦金奈尔

您将其包含name为查询参数,而不包含在JSON中。

从文档(在链接的页面上):

查询参数:

名称–将指定的名称分配给容器。必须匹配/?[a-zA-Z0-9 _-] +。

所以大概是这样的:

curl --http1.0 --request POST --header "Content-Type: application.json" http://$DOCKER_HOST:4243/containers/create?name=your-name --data @create.json

有疑问时:

您可以使用socat介于Docker CLI调用和与守护程序进行通信的unix套接字之间,以查看使用docker客户端时发生的情况,因为它仅与API本身进行通信。

在一个终端中:

socat -t100 -v UNIX-LISTEN:/tmp/proxysocket.sock,mode=644,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock

在另一个终端:

export DOCKER_HOST="unix:///tmp/proxysocket.sock"
docker run -ti --name=test ubuntu:14.04 /bin/bash 

您将可以在第一个终端的输出中看到:

2014/10/26 02:20:15.176744长度= 564从= 0到= 563

POST /v1.15/containers/create?name=test HTTP / 1.1 \ r

主机:/tmp/proxysocket.sock \ r

用户代理:Docker-Client / 1.2.0-dev \ r

内容长度:370 \ r

内容类型:application / json \ r

接受编码:gzip \ r

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Marathon Rest API知道容器名称

来自分类Dev

使用REST API部署Liberty Docker容器

来自分类Dev

如何按容器名称运行 docker 容器?

来自分类Dev

如何使用Docker远程API使用另一个容器的网络名称空间创建容器

来自分类Dev

Docker 任务:如何从构建/发布变量设置 Azure 容器注册表名称或 ID?

来自分类Dev

使用Docker部署时的容器名称

来自分类Dev

如何使用Broadleaf REST API?

来自分类Dev

如何使用 REST API 登录?

来自分类Dev

如何为Docker容器设置时区?

来自分类Dev

如何设置对Docker容器的SSH访问?

来自分类Dev

使用docker-compose设置容器时区

来自分类Dev

如何根据docker ps -a中的名称运行Docker容器?

来自分类Dev

如何使用REST API在发布定义中设置代理队列?

来自分类Dev

如何使用 Gerrit REST API 设置修订审查

来自分类Dev

如何使用 Apache Marathon REST API 扩展 docker 实例。?

来自分类Dev

如何在Docker覆盖网络中使用自定义名称作为容器的网络名称?

来自分类Dev

如何使用API密钥保护REST API

来自分类Dev

ECS部署映像时如何设置容器名称

来自分类Dev

如何使用Docker容器运行Kong API Gateway?

来自分类Dev

如何使用 sbt-native-packager 设置 docker 镜像名称

来自分类Dev

如何从前端容器访问Docker API容器?

来自分类Dev

如何从Angular Nginx容器连接到Node API docker容器

来自分类Dev

使用docker python API链接容器

来自分类Dev

如何在REST API中使用会话

来自分类Dev

如何在FireMonkey中使用REST API?

来自分类Dev

如何使用可选参数创建REST API?

来自分类Dev

使用PayPal REST API,如何取消付款?

来自分类Dev

如何使用REST API登录Redmine

来自分类Dev

如何使用PHP Rest API获取数据?

Related 相关文章

热门标签

归档