docker健康检查在config.v2.json中

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文件中,但是在那个文件里, Status下没有unhealthy ,所以我想知道“健康=不健康”从哪里来。

谢谢。

命令docker inspect的输出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 

希望这是有帮助的。