是否有可能显示正在运行的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, MaximumRetryCountno,则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 

希望对别人有帮助!