此问题在此处已有答案:
Shell command to Get container id from "docker ps"(6个答案)
Why does bash script work depend on the size of the terminal window?(3个答案)
25天前关闭。
我学习了服务托管的Docker。我想以某种方式拆分所需的行以获得所需的令牌。如果令牌对应于CONTAINER_ID
,我会将该行拆分为空格并获得第一个令牌。我甚至不知道启动此shell管道,但它似乎对每个SRE开发人员都有用。:-)
我试着下了命令:docker ps -a | grep -w <image-name> | head -n1 | awk '{print $1;}'
以下输出对应于命令run docker ps -a
。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0e7e52667c2e sappio-1 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp hardcore_panini
d9cd1a9d2c37 eclipse-mosquitto:2-openssl "/docker-entrypoint.…" 2 weeks ago Created cedalo_platform_mosquitto_1
96f65f3e8bd8 postgres:14.5 "docker-entrypoint.s…" 3 weeks ago Up 4 hours tests_db
bdb51a386349 nginxproxy/nginx-proxy "/app/docker-entrypo…" 5 months ago Created dreamy_bouman
2条答案
按热度按时间j7dteeu81#
FWIW中,我经常使用以下几个命令:
关键字可以是关于你的图像名称的一些独特的东西。
y1aodyip2#
假设条件:
IMAGE
或部分IMAGE
IMAGE
匹配时,则显示相应的CONTAINER ID
并退出(即,仅对第一个匹配感兴趣)使用
docker.ps.out
模拟docker/ps
输出,并添加几行(伪)代码:一个
awk
创意:对于
-v img="post"
:对于
-v img="proxy"
:对于
-v img="XXX"
:OP的当前代码使用
grep -w
来指示需要对IMAGE
字段进行精确匹配,因此对awk
脚本进行了一个小的更改:对于
img="postgres:14.5"
:对于
img=postgres:17.2"
: