动机:要通过计算一定数量的消息运行一个码头工人容器基本的健康检查跨越标准输出流过一定的时间范围是否可以从Docker容器中读取通过stdout传递的消息? (不`泊坞窗logs`)
近期目标:从在由docker exec
启动的一个外壳中,读取从主进程(PID 1)管道输出到标准输出的数据。
我甚至不确定我想要的是否可能。如果是这样的话,为什么不这样做会得到很多人的赞赏 - 并且有助于提高我的知识水平。
重现步骤:
启动容器 -
container1
docker run -it --name container1 ubuntu bash -c -i "COUNT=0; while true; do echo Keep the dance floor beat going; ((COUNT++)); sleep 1; echo \"Count is: \${COUNT}\"; done;"
在另一终端窗口,
docker exec
启动另一个过程在同一个容器docker exec -it container1 bash
我可以以某种方式tail
/print
/read
由PID 1通过stdout传递的消息?
我知道有一些解决方法 - 例如通过tee
管道或以其他方式写入磁盘 - 但希望有一个神奇的子弹。
也许这? http://stackoverflow.com/a/17790708/2079781 – Rickkwa
感谢您的建议,但我无法得到解决方案来处理上面提供的复制。 – JacobWuzHere
我没有找到快速解决方案,但您可以查看https:// github。com/gliderlabs/logspout,它以某种方式获取容器的日志输出,并且通常将其输出到远程收集器。 (编辑:嗯,我认为这也可以通过Docker主机,所以它可能不是你要找的) – schmunk