docker 日志位置
日志分两类,一类是 Docker 引擎日志;另一类是 容器日志。
Docker 引擎日志
Docker 引擎日志 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (CentOS 7, Ubuntu 16.04)。前者一般位于 /var/log/upstart/docker.log 下,后者一般通过 jounarlctl -u docker 来读取。不同系统的位置都不一样,SO上有人总结了一份列表,我修正了一下,可以参考:
| 系统 | 日志位置 |
|---|---|
| Ubuntu(14.04) | /var/log/upstart/docker.log |
| Ubuntu(16.04) | journalctl -u docker.service |
| CentOS 7/RHEL 7/Fedora | journalctl -u docker.service |
| CoreOS | journalctl -u docker.service |
| OpenSuSE | journalctl -u docker.service |
| OSX | ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/log/docker.log |
| Debian GNU/Linux 7 | /var/log/daemon.log |
| Debian GNU/Linux 8 | journalctl -u docker.service |
| Boot2Docker | /var/log/docker.log |
容器日志
容器的日志 则可以通过 docker logs 命令来访问,而且可以像 tail -f 一样,使用 docker logs -f 来实时查看。如果使用 Docker Compose,则可以通过 docker-compose logs <服务名> 来查看。
如果深究其日志位置,每个容器的日志默认都会以 json-file 的格式存储于 /var/lib/docker/containers/<容器id>/<容器id>-json.log 下,不过并不建议去这里直接读取内容,因为 Docker 提供了更完善地日志收集方式 - Docker 日志收集驱动。
关于日志收集,Docker 内置了很多日志驱动,可以通过类似于 fluentd, syslog 这类服务收集日志。无论是 Docker 引擎,还是容器,都可以使用日志驱动。比如,如果打算用 fluentd 收集某个容器日志,可以这样启动容器:
|
$ docker run -d \
– log-driver=fluentd \
– log-opt fluentd-address=10.2.3.4:24224 \
– log-opt tag=”docker.{{.Name}}” \
nginx
|
其中 10.2.3.4:24224 是 fluentd 服务地址,实际环境中应该换成真实的地址。
dockerd 日志配置
要改变dockerd的日志为debug,可以重启dockerd,并提供启动参数-D或–debug,示例如下:
dockerd -D
dockerd的日志文件,默认为/var/log/messages,也可以重定向到其他日志文件,示例如下:
dockerd -D >> log_file 2>&1
方法二:
vi /etc/docker/daemon.json
{
"debug": true
}
- 1
- 2
- 3
重启docker daemon
systemctl stop docker
systemctl daemon-reload
systemctl start docker
dockerd的日志级别
dockerd支持的日志级别debug, info, warn, error, fatal,默认的日志级别为info。必要的情况下,还需要设置日志级别,这也可以通过配置文件,或者通过启动参数-l或–log-level。
方法一:配置文件/etc/docker/daemon.json
{
"log-level": "debug"
}
- 1
- 2
- 3
方法二:
dockerd --log-level debug
dockerd -l debug
- 1
- 2
查看日志
方法一:
tail -f /var/log/messages
方法二:
watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可
日志源码分析:
https://blog.csdn.net/zyqduron/article/details/54614461
come from:https://blog.csdn.net/warrior_0319/article/details/79713155
docker 日志位置的更多相关文章
- Docker 日志都在哪里?怎么收集?
https://www.cnblogs.com/YatHo/p/7866029.html 日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日 ...
- docker 日志分析
日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日志 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (Ce ...
- docker日志输出文件大小设置以及文件个数限制
问题描述: 今天有同事运行了一个docker容器,不多时就导致宿主机硬盘直接撑爆,消耗了120G,发生的很是突然. 问题排查: 后续查阅资料,发现是因为docker中的某个进程一直在持续输出,而这些输 ...
- Docker 日志管理最佳实践
开源Linux 回复"读书",挑选书籍资料~ Docker-CE Server Version: 18.09.6 Storage Driver: overlay2 Kernel V ...
- Oracle Listener日志位置及压缩转移
近日由于Oracle Listener异常断开导致应用无法上传数据,需要从listener日志开始分析问题原因.此文介绍如何获取日志位置.由于日志文件大小问题,同时将日志文件进行压缩存放. alert ...
- docker日志引擎说明
docker原生支持众多的日志引擎,适用于各种不同的应用场景,本篇文档对其作一个简单的说明. Docker日志引擎说明 docker支持的日志引擎如下: none:关闭docker的回显日志, doc ...
- nginx access 日志位置
nginx access 日志位置 /var/log/nginx tail -f access.log
- 【简记】修改Docker数据目录位置,包含镜像位置
为啥要改? Docker安装后默认下载的位置在/var/lib/docker ,如果/var分区没有独立分出来,Linux下默认是与/根分区在一起.一般我们装Linux系统的时候,除了做邮件服务器外, ...
- java -jar 设置日志位置
使用 java -jar形式启动,设定日志的位置 语法如下: java -jar xxx.jar > xxx.log References java -jar 设置日志位置
随机推荐
- 面试准备——计算机网络(http)
一.各种协议与HTTP协议之间的关系 二.URI(统一资源标识符) URI用字符串标识某一互联网资源. URI的格式: 协议方案名:指定访问资源时使用的协议类型. 登录信息(认证):可选,指定用户名和 ...
- Java【IO流、字节流、字符流】
1.内存是临时存储 Input输入(读取) output输出(输出) 流:数据(字符字节)1个字符=2个字节 1个字节=8个二进制位 输入:把硬盘中的数据读取到内存中 输出:把内存中的数据写入到硬盘中 ...
- kubernetes 的API 介绍
在API conventions doc中描述了API的全部协议. 在API Reference文档中描述了API的端点.资源类型和示例. 在Controlling API Access doc中讨论 ...
- 03- HTML基本结构
初始HTML HTML(英文Hyper Text Markup Language的缩写)中文译为"超文本标签语言",主要是通过HTML标签对网页中的文本.图片.声音等内容进行描述. ...
- 硬件篇-04-SLAM移动底盘机械设计
这篇比较水,发出来主要是为了呼应专栏主题,既然是实现,那各个方面都得讲一下不是. 底盘SW模型 淘的,主要是看上了它有弹簧阻尼器,适合野外,抗震,但是这种底盘结构转向起来比较吃力.是再有个全轮 ...
- js去重的两种方法
去重 去重方法和思路也很多,这里就介绍两种吧. 方法一: 1 2 3 4 5 6 7 8 9 10 11 function unique1(arr) { var res = [], ...
- ThinkPHP5 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
1.首先修改Apache的httpd.conf文件. 确认httpd.conf配置文件中加载了mod_rewrite.so 模块,加载的方法是去掉mod_rewrite.so前面的注释#号 讲http ...
- 【Java】 Java中的浅拷贝和深拷贝
先抛出结论: 浅拷贝是引用拷贝,A对象拷贝B以后,A对象和B对象指向同一块内存地址,改变A对象的属性值会触发B对象属性的改变,有安全风险 深拷贝是对象拷贝,A对象拷贝B以后,A对象和B对象指向不同的额 ...
- UVA11021麻球繁衍
题意: 有K只麻球,每只生存一天就会死亡,每只麻球在死之前有可能生下一些麻球,生i个麻球的概率是pi,问m天后所有的麻球都死亡的概率是多少? 思路: 涉及到全概率公式,因为麻球的 ...
- AZscaaner源码解读之数据库连接(一)
准备开个新坑,但是可能近期不会更新,先写一篇开个头. sqlalchemy 目前在Python中使用得比较多的是sqlalchemy,sqlalchemy是一个对象关系映射(ORM).sqlalche ...