场景描述:

应用程序运行在 Docker环境中,
经常使用的查看后台日志的命令是:docker attach 容器名
该命令优点:实时输出;
不足之处:日志大量输出的时候,屏幕一闪而过,不便于调试,
并且有一个比较严重的问题,就是该命令在某些容器环境下,由于配置不同,ctrl+c命令退出的时候,会直接导致该容器停止。

其实,docker自身是集成封装了一些关于查看日志的命令的,组合使用,可帮助日常快速定位问题:

* 显示所有 log
* 显示实时 log
* 使用 tail 查看 log 尾部
* 使用 grep 过滤 log
* 根据时间查看 log
* 组合使用
* 把错误日志追加写入文件

1. 显示所有 log

# 显示某个容器的所有log
$ docker logs [OPTIONS] <CONTAINER> # 显示 docker-compose 启动的所有容器的log
$ docker-compose logs

2. 显示实时 log

类比linux下的命令tail -f ****.log

$ docker logs -f <CONTAINER>

3. 查看倒数最近的多少条日志记录

$ docker logs --tail  <CONTAINER>

4. grep 过滤 log

$ docker logs | grep error

5. 根据时间查看 log

如只想查看某个时间点之后的日志,使用 --since 选项,显示从指定时间点到最新的日志:

$ docker logs --since --20T15::34.483942Z <CONTAINER>

--since指定了开始时间点,还可以指定结束时间点,使用选项 --until,显示二者之间的日志:

$ docker logs --since 2019-04-20T15:05:34.483942Z --until 2019-04-23T15:05:34.483942Z <CONTAINER>

6. 组合使用

$ docker logs --tail  <CONTAINER> | grep info
$ docker logs -f --since xxx --tail= <CONTAINER>

7. 把错误日志追加写入某个文件

$ docker logs -t <CONTAINER> | grep error >> logs_error.txt

如果公司有自己的内部日志分析系统,这里可以每天定时采集错误日志,并将错误日志文件,导入日志系统,分析。

运维笔记--docker高效查看后台日志的更多相关文章

  1. 运维笔记--Docker文件占用磁盘空间异常处理

    场景描述: 1. 服务器运行一段时间后,发现系统盘磁盘空间在不断增加,一开始的时候,不会影响系统,随着时间的推移,磁盘空间在不断增加,直到有一天你会发现系统盘剩余空间即将使用完,值得庆幸的是,如果您使 ...

  2. 运维笔记--docker odoo镜像 运行异常处理

    场景描述: 镜像来源,dockerhub odoo官方镜像:https://hub.docker.com/_/odoo odoo镜像运行一段时间后,出现下述异常,可能是触发某个未知bug:该现象在生产 ...

  3. 运维笔记--Docker环境ubuntu系统安装指定版本python[3.6]

    场景描述: 直接安装出现如下异常: root@ae2d02e458f3:/home# apt-get install python3.6 Reading package lists... Done B ...

  4. Linux系统运维笔记(一),查看系统版本和设置系统时间

    Linux系统运维笔记 查看系统版本和设置系统时间 查看系统版本 lsb_release -a (适用于所有的linux,包括Redhat.SuSE.Debian等发行版,但是在debian下要安装l ...

  5. Linux系统运维笔记(五),CentOS 6.4安装java程序

    Linux系统运维笔记(五),CentOS 6.4安装java程序 用eclipse编译通的java程序,现需要实施到服务器.实施步骤: 一,导出程序成jar包. 1,在主类编辑界面点右健,选  ru ...

  6. Linux系统运维笔记(四),CentOS 6.4安装 MongoDB

    Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...

  7. Linux系统运维笔记(四),CentOS 6.4安装Nginx

    Linux系统运维笔记(四),CentOS 6.4安装Nginx 1,安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool op ...

  8. Linux系统运维笔记(三),设置IP和DNS

    Linux系统运维笔记(三),设置IP和DNS 手工配置静态的IP地址 也就是手工配置IP地址.子网掩码.网关和DNS. vi /etc/sysconfig/network-scripts/ifcfg ...

  9. Linux系统运维笔记(二),Linux文件编辑命令

    Linux系统运维笔记 Linux文件编辑命令 首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式 接下来我们按i,然后键盘随便输入写内容. 然后按ESC重新进入到命令 ...

随机推荐

  1. HTML元素的分类

    HTML元素的分类 EC前端 - HTML教程 块元素 div:无语义,常用于布局 aside:表示article元素的内容之外的与article元素的内容相关内容 figure:表示一段独立的流内容 ...

  2. mac查看当前调用tcp的进程并关闭指定进程

    查看所有tcp进程 监听的端口 lsof -iTCP -sTCP:LISTEN 查看指定端口信息 lsof -i: 关闭指定进程 kill -

  3. CentOS7安装特定版本的Docker

    查询可用版本 [root@bogon ~]# yum list docker-ce --showduplicates | sort -r 查询结果 * updates: centos.ustc.edu ...

  4. 使用kbmmw 生成REST 服务OpenAPI函数原型

    我们以前介绍了很多kbmmw 开发REST 的例子.一直有个问题困惑着大家. 我们提供REST 服务,如何让客户端快速的使用,当然可以写文档,但是一旦 后台改变了,又要再一次给调用者发新文档,非常的麻 ...

  5. SAS 函数

    SAS 函数 SAS函数是编程语言的一个组件,可接受参数.执行计算或进行其他操作并返回值.返回值是字符型或数值型的结果,可用于赋值语句或 表达式中.SAS包含很多函数,也可以自定义函数.在BASE S ...

  6. tp5 数据库

    连接数据库: 在config下面的database.php里. 查找数据: halt(Db::name('studys')->column('name','age')); 也可以用find fi ...

  7. 添加sqljdbc的maven依赖JAVA环境配置

    sqljdbc是微软sql server的jdbc驱动 使用sqljdbc需要从微软的官方网站下载jar包: http://www.microsoft.com/en-us/download/detai ...

  8. Android Studio 3.1.2 修改字体(font)大小(size) 及老版本修改主题、字体、颜色 参照地址

    Android Studio 3.1.2  修改字体(font)大小(size) 步骤:File-Settings-Editor-Color Scheme-Color Scheme Font-Size ...

  9. 海龟绘图turtle库之二级基础编程题

    一.画一个太极图 import turtle as t t.pensize(2)#设置笔画宽度 t.circle(100)#以100为半径的圆 t.circle(50, 180) t.circle(- ...

  10. python学习第四天笔记整理

    一.迭代器及生成器 #迭代器:迭代的工具 #1 什么是迭代:指的是一个重复的过程,每一次重复称为一次迭代,并且每一次重复的结果是下一次重复的初始值# while True:# print('===== ...