如何通过echo命令发送消息到mac控制台? (适用于Mac的Docker)

我在Docker for Mac上使用节点服务器容器。 并且node.js服务器的消息显示在我的mac控制台上。

我怎么能通过我的Mac控制台中的容器内的bash脚本显示消息? 我也运行shell脚本。 我想通过echo something显某些东西来显示消息

我的docker组成包括healthcheck ,回声在healthcheck.sh内执行:

 healthcheck: test: ["CMD", "bash", "-c", "/xxx/xxxx/healthcheck.sh"] 

谢谢!

由于您的echo在docker healthcheck执行,其输出不会发送到容器stdout 。 Docker将healthcheck输出存储为容器元数据:

为了帮助debugging失败的探测器,命令写入标准输出或标准错误的任何输出文本(UTF-8编码)都将存储在健康状态中,并且可以通过docker检查来查询。 这样的输出应该保持简短(目前只有前4096个字节被存储)。

https://docs.docker.com/engine/reference/builder/#healthcheck

所以你可以看到使用这个输出:

 docker inspect <container-id> 

看起来像这样:

  "Health": { "Status": "unhealthy", "FailingStreak": 6, "Log": [ { "Start": "2017-06-17T19:39:33.001296235Z", "End": "2017-06-17T19:39:33.059073965Z", "ExitCode": 1, "Output": "/bin/sh: 1: curl: not found\n" }, 

更具体地说:

 docker inspect <container-id> -f '{{index .State.Health.Log 0}}' 

所有写入stdout和stderr(包括echo )的消息都存储在容器的日志中。

所以,您可以尾随容器的日志,并看到它们发生的消息。

对于单个容器,可以运行docker logs -f <container name>

对于docker-compose设置,运行docker-compose logs -f <service name>

开始你的应用程序后做这个