如何从我的docker-compose文件中查看容器的容器健康状态

由于docker-compose 1.10.0 支持健康检查 。 我开始在我的一个docker-compose文件中实现这些。

有几个站点build议从docker ps可以看到容器的健康状态。 见下文。

但是,运行docker ps时,我看不到任何健康状态。 我的docker-compose文件的摘录如下所示:

 version: "2.1" services: my-service: container_name: my-service image: "our-registry:5000/my-service:1.0.1" expose: [3000] restart: always depends_on: - other-service-1 - other-service-2 healthcheck: test: ["nc", "-z", "127.0.0.1", "3000", "||", "exit", "1"] interval: "2s" timeout: "1 

我的docker ps输出的摘录如下所示:

 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES af680b9fc6c3 our-registry/pr-georegion:1.0.1 "node index.js" 8 minutes ago Up 8 minutes 3000/tcp pr-georegion 

Docker和Docker-compose版本:

 # docker -v Docker version 1.12.6, build 78d1802 # docker-compose -v docker-compose version 1.10.1, build b252738 

例1

例1

例2

在这里输入图像说明

我在我的docker-compose文件中发现了这个问题。 从[官方文档](testing必须是string或列表,如果是列表,则第一项必须是NONE,CMD或CMD-SHELL,如果是string,则相当于指定CMD-SHELL,后跟那个string。):

testing必须是一个string或一个列表。 如果是列表,则第一项必须是NONE,CMD或CMD-SHELL。 如果是string,则相当于指定CMD-SHELL,后跟该string。

所以我改变了:

 test: ["nc", "-z", "127.0.0.1", "3000", "||", "exit", "1"] 

对于:

 test: ["CMD-SHELL", "nc -z 127.0.0.1 3000 || exit 1"]