gpt4 book ai didi

docker - 尝试 docker 检查 State.Health 给出 `map has no entry for key "State"`

转载 作者:行者123 更新时间:2023-12-02 09:51:08 26 4
gpt4 key购买 nike

我正在尝试使用 Docker HEALTHCHECK在一个容器中。我在版本 3 docker-compose 文件中进行设置,该文件也支持 healthcheck :

version: '3'

services:
api:
[...]
healthcheck:
test: test ! -e /unhealthy
interval: 10s
timeout: 1s
retries: 1

在我能找到的每个地方,包括在 stackoverflow 上,检查容器运行状况的方法是使用 docker inform 并查看 State.Health ,但是不存在这样的条目:

$ docker inspect --format='{{json .State}}' api
Template parsing error: template: :1:7: executing "" at <.State>: map has no entry for key "State"

我在谷歌上搜索了很长一段时间,但看不到这些信息转移到哪里,也看不到检查健康状况的任何替代方法。

版本信息:

$ docker-compose --version
docker-compose version 1.16.1, build 6d1ac219
$ docker --version
Docker version 17.09.0-ce, build afdb6d4

最佳答案

服务名称 api 是一个组合结构。 Docker 无法将名称 api 映射到容器。我怀疑您有另一个名为 api 的对象,它正在查找 dockerspect

Compose 容器通常命名为 {{parent_directory}}-{{service}}-{{n}}。要查找名称,请使用:

docker-compose ps
docker ps -a --filter name=SERVICE_NAME

然后您可以对该名称使用检查

docker inspect --format='{{json .State}}' CONTAINER_ID_OR_NAME

或专门检查容器以避免非容器对象:

docker container inspect --format='{{json .State}}' CONTAINER_ID_OR_NAME

所有容器都应该具有.State对象。只有定义了运行状况检查的容器才会具有 .State.Health 数据。

关于docker - 尝试 docker 检查 State.Health 给出 `map has no entry for key "State"`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com