docker - docker-compose:即使容器关闭,如何继续以“关注”模式显示日志?
问题描述
如果您docker-compose logs -f service
在一个终端中运行并尝试在另一个终端中重新启动service
,则日志记录将停止,您将需要重新启动dkc logs
。怎么继续dkc logs
跑?
到目前为止,我发现的唯一解决方案是运行额外的 noop 服务,该服务不允许dkc logs
关闭。如果这是唯一的解决方案,那么您noop
对 docker hub 上已经存在的最简单的服务有什么建议吗?
我的解决方法:
- 向其中添加新
noop
服务docker-compose.override.yml
(我选择了 redis,因为它已经安装并且非常轻量级):
services:
noop:
image: redis:5-alpine
- 运行
docker-compose logs -f service noop
而不是service
. - 运行
docker-compose stop/restart service
。logs
进程将通过noop
服务保持活动状态。
缺点:
- 额外的东西要运行
- 无法使用
dkc stop
且未dkc restart
指定服务
解决方案
也许有关您正在记录的内容的一些信息。例如,在 nginx 或 php 容器上,我们只需使用卷将日志文件移到容器外,将它们挂载到主机上,然后您可以根据需要解析它们。
volumes:
- /var/log/mysql/error_service_xy.log:/var/log/mysql/error.log
推荐阅读
- javascript - 如何安装 popper.js 以与引导程序一起使用?
- python - 如何使用外部服务器作为上行链路并同时托管 Web 应用程序?
- python - Python DataFrame 在创建新列时按列分组
- python-3.x - 读取 csv 文件并且无法存储每个元素
- bigbluebutton - 大蓝色按钮 HTML5Client 未显示所有功能
- ios - SwiftUI 确认按钮 - 在任何其他视图交互时重置状态
- python - 正则表达式匹配单词,但前提是它不以非字母数字字符开头
- python - Python Spark用flatMap爆炸替换
- python - 在python中以相同的单位制作数字浮点数
- google-cloud-firestore - 使用firestore作为数据库时如何从datagridview中搜索值