如何列出所有设置了重启策略的Docker容器?
如何列出所有设置了重启策略的Docker容器(含已停止容器)
不管容器处于运行、停止还是成功退出状态,只要配置了重启策略,都可以通过docker inspect命令获取其重启策略信息——因为重启策略是容器的持久化配置项,不会随容器状态变化而丢失。
方法1:格式化输出所有容器的重启策略(推荐)
使用docker inspect的格式化功能,结合容器ID列表,直接输出容器名称、状态和重启策略:
docker inspect --format '{{.Name}} | {{.State.Status}} | {{.HostConfig.RestartPolicy.Name}}' $(docker ps -aq)
docker ps -aq:获取所有容器的ID(包括已停止的)--format:自定义输出格式,提取容器名称、运行状态、重启策略类型
如果只想筛选出非默认重启策略的容器(默认策略为no),可以加grep过滤:
docker inspect --format '{{.Name}} | {{.State.Status}} | {{.HostConfig.RestartPolicy.Name}}' $(docker ps -aq) | grep -v " | no$"
方法2:显示on-failure策略的重试次数
如果要查看on-failure策略对应的重试次数,可以调整格式化字段:
docker inspect --format '{{.Name}} | {{.State.Status}} | {{.HostConfig.RestartPolicy.Name}} | 重试次数:{{.HostConfig.RestartPolicy.MaximumRetryCount}}' $(docker ps -aq) | grep -v " | no |"
方法3:无工具依赖的简易查看(输出较零散)
如果不需要规整格式,也可以直接用grep提取关键信息:
docker inspect $(docker ps -aq) | grep -A2 -B1 -E '(Name|Status|RestartPolicy)'
-A2:显示匹配行后2行,-B1:显示匹配行前1行,方便关联容器信息
关键说明
- 对于设置了
on-failure策略且已成功运行完成(状态为exited且退出码为0)的容器,重启策略依然保存在容器配置中,上述命令可以正常识别。 - 重启策略的类型包括:
no(默认)、always、unless-stopped、on-failure。
内容的提问来源于stack exchange,提问作者Ákos Vandra-Meyer
相关产品推荐
相关产品推荐

