滚动 Docker 中的 Nginx 日志(2)

其实这个问题的全称应该是:能从宿主机中给 docker 容器中的 nginx master 进程发送信号吗?
答案是,可以的。
笔者这《在 docker 容器中捕获信号》一文中介绍了容器中信号的捕获问题,感兴趣的朋友可以去看看。在那篇文章中我们介绍了 docker 向容器中进程发送信号的 kill 命令。我们可以通过命令:

$ docker container kill mynginx -s USR1

向容器中的 1 号进程(nginx master)发送 USR1 信号(这种方式只能向 1 号进程发送信号):

结合上面的两个问题,我们可以写出另外的一种方式来滚动 docker 中的 nginx 日志。这种方式不需要通过 docker exec 命令在容器中执行命令,而完全在宿主机中完成所有的操作:

先重命名容器数据卷中的日志文件

给容器中的 1 号进程发送 USR1 信号

总结

相比之下我还是更喜欢第一种方式,它逻辑上清晰,操作上几乎与宿主机完全隔离,也不容易出错。但是通过第二种方式的尝试,我们不但可以找到新的实现方式,还会加深对容器操作的理解。学而不思则罔啊!

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fc87ffc1881b6fb2c3caca6b0c95f695.html