gpt4 book ai didi

bash - 停止运行了一定时间的 Docker 容器

转载 作者:行者123 更新时间:2023-12-02 18:31:44 25 4
gpt4 key购买 nike

我想创建一个 cron 作业来停止 Docker 容器,如果它们已经运行超过 2 小时。

我可以得到他们开始的时间。

$ docker inspect -f '{{ .State.StartedAt }}' $(docker ps -q)

只需要与 2 小时前进行比较...

$ date --utc --date="-2 hours" +"%Y-%m-%dT%H:%M:%S.%NZ"

...如果它更早停止容器

$ docker stop <<container_id>>

如何使用 bash 脚本执行此操作?

最佳答案

这是一个旧线程,但如果有人正在寻找答案,它仍然存在。以下命令将停止运行超过 2 小时的容器。

docker ps --format="{{.RunningFor}} {{.Names}}"  | grep hours |  awk -F: '{if($1>2)print$1}' | awk ' {print $4} ' | xargs docker stop

解释:

docker ps --format="{{.RunningFor}} {{.Names}}" 

将打印容器名称和运行周期。

grep hours 

将打印在数小时内运行的容器。

 awk -F: '{if($1>2)print$1}' 

只会打印运行时间超过 2 小时的容器。

awk ' {print $4} ' | xargs docker stop

将打印从先前输出中获得的容器名称并将其作为参数传递以停止容器。

关于bash - 停止运行了一定时间的 Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41776126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com