运维笔记--docker高效查看后台日志
场景描述:
应用程序运行在 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高效查看后台日志的更多相关文章
- 运维笔记--Docker文件占用磁盘空间异常处理
场景描述: 1. 服务器运行一段时间后,发现系统盘磁盘空间在不断增加,一开始的时候,不会影响系统,随着时间的推移,磁盘空间在不断增加,直到有一天你会发现系统盘剩余空间即将使用完,值得庆幸的是,如果您使 ...
- 运维笔记--docker odoo镜像 运行异常处理
场景描述: 镜像来源,dockerhub odoo官方镜像:https://hub.docker.com/_/odoo odoo镜像运行一段时间后,出现下述异常,可能是触发某个未知bug:该现象在生产 ...
- 运维笔记--Docker环境ubuntu系统安装指定版本python[3.6]
场景描述: 直接安装出现如下异常: root@ae2d02e458f3:/home# apt-get install python3.6 Reading package lists... Done B ...
- Linux系统运维笔记(一),查看系统版本和设置系统时间
Linux系统运维笔记 查看系统版本和设置系统时间 查看系统版本 lsb_release -a (适用于所有的linux,包括Redhat.SuSE.Debian等发行版,但是在debian下要安装l ...
- Linux系统运维笔记(五),CentOS 6.4安装java程序
Linux系统运维笔记(五),CentOS 6.4安装java程序 用eclipse编译通的java程序,现需要实施到服务器.实施步骤: 一,导出程序成jar包. 1,在主类编辑界面点右健,选 ru ...
- Linux系统运维笔记(四),CentOS 6.4安装 MongoDB
Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...
- Linux系统运维笔记(四),CentOS 6.4安装Nginx
Linux系统运维笔记(四),CentOS 6.4安装Nginx 1,安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool op ...
- Linux系统运维笔记(三),设置IP和DNS
Linux系统运维笔记(三),设置IP和DNS 手工配置静态的IP地址 也就是手工配置IP地址.子网掩码.网关和DNS. vi /etc/sysconfig/network-scripts/ifcfg ...
- Linux系统运维笔记(二),Linux文件编辑命令
Linux系统运维笔记 Linux文件编辑命令 首先我们使用命令 vi filename 打开一个文件,这个时候进入到的是命令模式 接下来我们按i,然后键盘随便输入写内容. 然后按ESC重新进入到命令 ...
随机推荐
- 博客三--tensorflow的队列及线程基本操作
连接我的开源中国账号:https://my.oschina.net/u/3770644/blog/3036960查询
- ListView点击事件失效(item里面有button按钮控件)解决方法
ListView点击事件失效解决方法: 一般出现这个情况,就是你的item里面有按钮的点击事件,你的item里面有button控件,button控件是抢占焦点的,只要在你的item布局里面这样子写就可 ...
- [Ionic] Error: No provider for Http! Error: No provider for Http!
1. 打开src/app/app.module.ts 2. 在最上面导入 import{HttpModule} from '@angular/http'; 3. 在imports块中加入:HttpMo ...
- 检索html页自生成&nasp;标签,并替换为空(即去掉空格)
在开发过程中,遇到这样的一种情况,就是页面有时候不知道什么原因会自动生成一些元素,从而打乱自己原有的一些布局. 原html页源代码: 生成后的html源代码: 可以明显看出自动生成了很多 元素,现 ...
- mysql5.7高版本加载低版本sql文件,时间不能为0000-00-00格式错误
错误代码:ERROR 1067 (42000): Invalid default value for 解决方式 1. show session variables like '%sql_mode%'; ...
- 在n个数字中求为k的和————Java
给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以,输出:"YES",否则输出"NO".用Java实现 import java.util ...
- cropper.js 裁剪图片
https://blog.csdn.net/weixin_38023551/article/details/78792400
- 解决:Adobe Acrobat Pro中设置背景颜色后,出现白色条纹
找到 编辑->首选项->页面显示->渲染->使用2D图形加速 取消即可
- vue中的axios封装
import axios from 'axios'; import { Message } from 'element-ui'; axios.defaults.timeout = 5000;axios ...
- PowerShell工作流学习-5-自定义活动
关键点: a)除了内置活动和自定义活动,还可以用C# 编写自定义活动,并将其包括在 XAML 工作流和脚本工作流中,若要将自定义活动添加到脚本工作流中,请使用 #Requires 语句的 Assemb ...