是否有可能显示正在运行的Docker容器的重新启动策略?
当我创build容器时,我指定了一个重新启动策略,但是这不会在docker ps
中显示出来,也不会出现任何格式string显示。
有谁知道如何看到正在运行的容器的重启策略?
是的,这是可能的使用docker inspect
这是json
格式,只需要查询它。
这是运行容器zen_easley
检查的相关输出。 请注意更改适合您的环境的容器名称 。
-
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
和no,则0分别是上述输出中的值
您也可以通过使用下面的命令获取单个属性值,例如Name
,将.Name
添加到上面的命令中:
docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" zen_easley no
你可以通过docker inspect
。
只是政策名称:
docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' <container-id>
或整个策略(包括例如最大重试次数):
docker inspect --format '{{json .HostConfig.RestartPolicy}}' <container-id>
我做了这个小脚本来检查所有的容器和他们的政策:
#!/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
希望对别人有帮助!