通过Docker远程API链接容器
我正在尝试使用Docker remote API v1.7将子mongo容器链接到父节点容器 我在HostConfig中看到了通过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标
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还是套接字进行侦听!