使用 Bash 别名过滤 docker ps 输出

问题描述 投票:0回答:1

我在许多服务中使用 Docker,命令

docker ps
对我来说至关重要,但我讨厌冗长而广泛的输出。

例如在此服务器中:

[root@server docker-postgres]# docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED       STATUS                 PORTS     NAMES
020ec906a5ed   bitnami/pgpool:4   "/opt/bitnami/script…"   2 weeks ago   Up 2 weeks (healthy)             pgpool
d40dd0f76e19   postgres_img       "docker-entrypoint.s…"   2 weeks ago   Up 19 hours                      postgres

运行时我唯一看到的东西

docker ps
是这些:

pgpool        Up   2  weeks  (healthy)
postgres      Up  19  hours  

我能够运行此命令获得该输出:

docker ps | awk -F '[[:space:]][[:space:]]+' '{print $6,$5}' | column -t --table-right 2,3,4

但是该命令非常大,我尝试像这样设置别名:

alias dps="docker ps | awk -F '[[:space:]][[:space:]]+' '{print $6,$5}' | column -t --table-right 2,3,4"

但是运行别名我得到这个结果:

[root@server docker-postgres]# dps
awk: cmd. line:1: {print ,}
awk: cmd. line:1:        ^ syntax error
awk: cmd. line:1: {print ,}
awk: cmd. line:1:         ^ syntax error
awk: cmd. line:1: {print ,}
awk: cmd. line:1:          ^ unexpected newline or end of string

我不知道发生了什么,我尝试更改别名行中的几项内容,但没有成功...

bash docker awk delimiter
1个回答
0
投票

感谢@pmf的建议,这就是我正在寻找的:

alias dps="docker container ls --format 'table {{.Names}}\t{{.Status}}'"

它给了我这个结果:

NAMES      STATUS
pgpool     Up 2 weeks (healthy)
postgres   Up 19 hours
© www.soinside.com 2019 - 2024. All rights reserved.