一般在做一个image的时候,在dockerfile里面通过CMD指定要启动的命令。
那么这个启动的进程就是1号进程(我看到的是这样,应该都是吧,如果不是这样,请告知,谢谢),而它的输出就可以通过 "docker logs 来查看。
最近对已有的image进行改造,container的启动执行命令不再是原来的"goX"了,修改成了"goY"。"goY"对外提供了REST API,这些服务用于启停"goX"(在一个新的进程里)。
问题来了,现在通过"docker logs "看到的只是"goY"的输出,而"goX"的log看不到了。
简单的解决方法有两个:
一、把"goX"的log重定向到文件里
需要的时候查看文件。
二、把"goX"的log重定向到一号进程的stdout上
eg:
用shell执行的话就是:
goX > /proc/1/fd/1
这样,"goX"的log就可以通过"docker logs 看到了。
当然,也可以把错误重定向出来。
goX > /proc/1/fd/1 2>&1
阅读(3340) | 评论(0) | 转发(0) |