通过Docker远程API链接容器

通过Docker远程API链接容器,docker,Docker,我正在尝试使用Docker remote API v1.7将子mongo容器链接到父节点容器 我在HostConfig中看到了Links属性,我猜它被传递到了 POST/containers//startrequest like { "Links": ["<container-name>:<alias>", ...] } { “链接”:[“:”,…] } 我不知道在启动节点容器时如何命名要使用的mongo容器。对于docker run,是否存在与CLI-name标

我正在尝试使用Docker remote API v1.7将子mongo容器链接到父节点容器

我在HostConfig中看到了
Links
属性,我猜它被传递到了
POST/containers//start
request like

{
  "Links": ["<container-name>:<alias>", ...]
}
{
“链接”:[“:”,…]
}
我不知道在启动节点容器时如何命名要使用的mongo容器。对于
docker run
,是否存在与CLI
-name
标志类似的API

我是否需要发出单独的
GET/containers//json
请求并使用自动生成的名称?

在当前(1.8)API中,
-name
标志作为查询字符串传递给
POST/v1.8/containers/create
,即:

POST /v1.8/containers/create?name=redis_ambassador
(为了简洁起见,省略了正文)

我通过使用的一个很好的建议,即使用socat作为所有docker CLI命令的代理,并使用以下命令,解决了这个问题:

# on one terminal  
sudo socat -t100 -v UNIX-LISTEN:/tmp/proxysocket.sock,mode=777,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock

# on a second terminal  
export DOCKER_HOST="unix:///tmp/proxysocket.sock"  

后续的
docker
cli命令将通过socat进行代理,它们的cli调用将显示在另一个终端上

这并不能真正回答您的问题,但每当我想知道“我该如何使用API实现这一点”时,我只会嗅探docker cli和API之间的通信。我使用tcpflow或socat来实现这一点,这取决于docker守护进程是通过(分别)tcp还是套接字进行侦听!