docker ps --quiet | xargs docker inspect --format '{{ .Id }}: Health={{ .State.Health.Status }}'
c1ab47fdc94858275e9327ce56d039010cb9db1eb7865e0917f3d8a74862367e: Health=unhealthy
**Template parsing error: template: :1:27: executing "" at <.State.Health.Status>: map has no entry for key "Health"**
我只想知道
map has no entry for key "Health
命令后为什么报告错误docker inspect
。状态应该在容器的config.v2.json
文件中,但是,在该文件中,unhealthy
下没有Status
,因此我想知道“Health = unhealthy”来自何处。谢谢。
最佳答案
命令docker inspect
的输出,它显示json作为响应。
如果您注意到响应,则没有所谓的Health
。因此,错误。但是,存在State -> Status
,其值为running
。因此,只需使用.State.Status
而不是.State.Health.Status
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 23570,
"ExitCode": 0,
"Error": "",
"StartedAt": "2016-10-30T07:06:14.114090476Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
由于您想查看状态,因此请使用以下命令,其显示为所需的输出:
sudo docker ps --quiet | xargs sudo docker inspect --format '{{ .Id }}:Health={{ .State.Status }}'
5db8668eb121bd67b6fdeba12269fa7f194c48140b5d547c70befe70b2c3f607:Health=running
为另一个不再运行的容器显示不同的
Status
值,如下所示:$ sudo docker inspect --format '{{ .Id }}:Health={{ .State.Status }}' 060d98f7838e
060d98f7838ec901fd7d3c855254af0d15702d2758d61f6754af8899bee9613a:Health=exited
希望这会有所帮助。
关于docker - config.v2.json中的docker healthcheck,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40326149/