小编R.C*_*sit的帖子

如何从`docker ps`的输出中提取映射的端口

我正在尝试使用以下命令获取 Docker 容器使用的所有端口:

sudo docker ps | tail -n1
29ba3137f3e2        java8/local:latest   "/bin/bash"         3 hours ago         Up 3 hours          0.0.0.0:8080->8080/tcp, 0.0.0.0:8443->8443/tcp, 0.0.0.0:32783->5432/tcp, 0.0.0.0:32782->10523/tcp   DEMO-20151118124751
Run Code Online (Sandbox Code Playgroud)

当我在终端中运行它时,我得到了我想要的。

$ sudo docker ps | tail -n1 | awk '{print $12}'
0.0.0.0:32783->5432/tcp,
Run Code Online (Sandbox Code Playgroud)

但我需要所有映射的端口。是否可以制作这样的shell脚本:

#!/bin/bash
paramnum=$(sudo docker ps | grep $lasttimestamp | wc -w);
text=$(sudo docker ps | tail -n1);
begin=($paramnum-4);
end=($paramnum-1);
for (( i=$end; i>=$begin; i--))
do
  t="awk '{print $"$i"}'";
  eval "echo $text | $t";
done
Run Code Online (Sandbox Code Playgroud)

我已经闲逛了几个小时。请帮助,或建议如何获得如下输出。

0.0.0.0:32782->10523/tcp
0.0.0.0:32783->5432/tcp,
0.0.0.0:8443->8443/tcp,
0.0.0.0:8080->8080/tcp,
Run Code Online (Sandbox Code Playgroud)

command-line bash docker

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

bash ×1

command-line ×1

docker ×1