当我创建容器时,我指定了重新启动策略,但docker ps
中没有显示,并且它也不会显示任何格式字符串。
有谁知道如何查看正在运行的容器的重启策略?
答案 0 :(得分:28)
是的,可以使用docker inspect
json
格式,只需要查询它。
以下是正在运行的容器zen_easley
的docker inspect的相关输出。请注意将容器名称更改为适合您的环境。
docker inspect zen_easley
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": true,
您只需运行以下命令即可获得相同的输出。
$ docker inspect -f "{{ .HostConfig.RestartPolicy }}" zen_easley
{no 0}
如果您看到RestartPolicy
有两个属性Name, MaximumRetryCount
且否,0 分别是上述输出中的值
您也可以使用以下命令获取单个属性值,例如Name
,将.Name
附加到上述命令:
docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" zen_easley
no
答案 1 :(得分:10)
您可以通过docker inspect
获得此作品。
只是政策名称:
docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' <container-id>
或整个政策(包括例如最大重试次数):
docker inspect --format '{{json .HostConfig.RestartPolicy}}' <container-id>
答案 2 :(得分:3)
我做了这个小脚本来检查所有容器及其策略:
#!/usr/bin/env bash
#Script to check the restart policy of the containers
readarray -t CONTAINERS < <(docker ps -a | grep -v NAMES | awk '{print $NF}')
for item in "${CONTAINERS[@]}"; do
#Hard-Bash way
#data=$(docker inspect "${item}" | grep -A 1 RestartPolicy | awk -F '"' '{print $4}' | tail -n 1)
#Docker-pr0 way
data=$(docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" "${item}")
echo "Container: ${item} / RestartPolicy: ${data}"
done
希望对某人有帮助!
答案 3 :(得分:1)
对于单行代码:
docker ps|grep -v CON|awk '{print $1}'|while read line; do docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" $line |xargs echo $line ;done