2017-03-09 84 views
0

我需要找出(以编程方式)我在Docker中部署的特定应用程序的容器ip &端口。该应用程序可以在多个节点中运行并扩大规模。以编程方式查找码头容器ip/port

有没有使用Docker API找出容器ips和端口的方法?

+0

泊坞PS,管道grep的名字,管道切割容器的id,管泊坞检查 –

回答

0

Docker API提供的所有操作HTTP端点,因此它可以在大多数languages轻松进行管理。

一个简单的例子是在命令行上使用curljq

可以列出所有集装箱港口

$ 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" 
] 
相关问题