Docker 生产环境之日志 - 查看容器或服务的日志

原文地址

docker logs 命令显示运行中的容器记录的日志信息。docker service logs 命令显示服务中的所有容器记录的日志信息。日志信息和格式几乎完全取决于容器的终端命令。

默认情况下,docker logsdocker service logs 命令会显示类似于终端中交互式运行命令的输出。UNIX 和 Linux 命令在运行时通常会打开三个 I/O 流,分别称为 STDINSTDOUTSTDERRSTDIN 是命令的输入流,可能包括来自键盘的输入或来自另一个命令的输入。STDOUT 通常是命令的正常输出,而 STDERR 通常用于输出错误消息。默认情况下,docker logs 显示命令的 STDOUTSTDERR。要阅读有关 I/O 和 Linux 的更多信息,请参阅 I/O 重定向的Linux文档项目文章

某些情况下,需要采取以下步骤才能使 docker logs 显示有用信息:

  • 如果你使用将日志发送到文件、外部主机、数据库或另外一个后端日志的日志驱动程序,docker logs 不会显示有用信息。
  • 如果你的镜像运行的是 web 服务器或数据库等非交互式进程,这个应用程序可能会将输出发送到日志文件而不是 STDOUTSTDERR

在第一种情况下,你的日志会通过其他方式处理,你可以选择不使用 docker logs。第二种情况下,官方的 nginx 镜像显示了一种解决方法,官方的 Apache httpd 镜像显示了另一种解决方法。

官方的 nginx 镜像创建了一个从 /dev/stdout/var/log/nginx/access.log 的符号链接,和一个从 /dev/stderr/var/log/nginx/error.log 的符号链接,覆盖了日志文件并使所有日志发送到指定的相关设备。参考 Dockerfile

官方的 Apache httpd 镜像改变了 httpd 应用程序的配置文件,将其正常输出改为 /proc/self/fd/1(也就是 STDOUT),错误输出改为 /proc/self/fd/2(也就是 STDID)。参考 Dockerfile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值