이 명령으로 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
터미널에서 실행했을 때 원하는 것을 얻었습니다.
$ sudo docker ps | tail -n1 | awk '{print $12}'
0.0.0.0:32783->5432/tcp,
그러나 모든 매핑 된 포트가 필요합니다. 다음과 같은 쉘 스크립트를 만들 수 있습니까?
#!/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
나는 몇 시간 동안 매달려 있었다. 다음과 같이 출력을 얻는 방법을 제안하거나 제안하십시오.
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,