当我创建容器时,我指定了一个重启策略,但是没有显示docker ps,并且没有出现任何格式字符串也显示这一点.
有谁知道如何查看正在运行的容器的重启策略?
Rao*_*Rao 39
是的,可以使用docker inspect哪种json格式,只需要查询它.
这是docker检查正在运行的容器的相关输出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,
Run Code Online (Sandbox Code Playgroud)
您只需运行以下命令即可获得相同的输出.
$ docker inspect -f "{{ .HostConfig.RestartPolicy }}" zen_easley
{no 0}
Run Code Online (Sandbox Code Playgroud)
如果您看到RestartPolicy有两个属性Name, MaximumRetryCount且没有,则0分别是上述输出中的值
您也可以Name通过使用以下命令获取单个属性值,并附.Name加到上面的命令:
docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" zen_easley
no
Run Code Online (Sandbox Code Playgroud)
Dan*_*owe 13
你可以通过这个获得docker inspect.
只是政策名称:
docker inspect --format '{{.HostConfig.RestartPolicy.Name}}' <container-id>
Run Code Online (Sandbox Code Playgroud)
或整个政策(包括例如最大重试次数):
docker inspect --format '{{json .HostConfig.RestartPolicy}}' <container-id>
Run Code Online (Sandbox Code Playgroud)
我做了这个小脚本来检查所有容器及其策略:
#!/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
Run Code Online (Sandbox Code Playgroud)
希望它对某人有所帮助!
小智 5
对于单行代码:
docker ps|grep -v CON|awk '{print $1}'|while read line; do docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" $line |xargs echo $line ;done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10244 次 |
| 最近记录: |