我需要找到(以编程方式)容器ip&我在Docker中部署的特定应用程序的端口。该应用程序可以在多个节点中运行并按比例放大。
有没有办法使用Docker API找出容器ips和端口?
答案 0 :(得分:1)
Docker API为所有操作提供HTTP端点,因此可以在大多数languages中轻松管理。
您可以列出所有容器端口
$ curl -s --unix-socket /var/run/docker.sock \
http:/v1.26/containers/json \
| jq '.[] | .Id, .Ports'
"b8249afa78bcc8027a38048384c7656a305a3c8d5a517d52df5a299223d8064d"
[
{
"IP": "0.0.0.0",
"PrivatePort": 3142,
"PublicPort": 3142,
"Type": "tcp"
}
]
"49125f8274242a5ae244ffbca121f354c620355186875617d43876bcde619732"
[
{
"IP": "0.0.0.0",
"PrivatePort": 4873,
"PublicPort": 4873,
"Type": "tcp"
}
]
检索特定容器的端口映射定义列表
$ curl -s --unix-socket /var/run/docker.sock \
http:/v1.26/containers/49125f8274242a5ae244ffbca121f354c620355186875617d43876bcde619732/json \
| jq '.NetworkSettings | .Ports | keys'
[
"4873/tcp"
]
答案 1 :(得分:0)
使用Docker SDK。只需选择语言......;)