默认情况下,service docker start或docker -d,docker后台进程默认会在当前终端输出日志,回车几下又可以获得shell,继续执行其他命令,然而当docker有日志需要输出到屏幕时,会再次进入到日志输出,很不方便。
使用docker -d > /path/to/log/file,把docker的日志输出重定向到文件。
同时你应该修改 /etc/init.d/docker 的代码,把 start-stop-daemon 的输出也重定向。
当你运行一个容器,容器的状态存活在 /var/lib/docker/containers/<id>下,例如
root@precise64:/var/lib/docker/containers/fe38c4124f36d0a5b2a38ea7dd58fe88ac92980286f1f6a7b7ed3ced7c994374# ls -la
total 44
drwx------ 3 root root 4096 Mar 14 19:56 .
drwx------ 83 root root 12288 Mar 14 21:53 ..
-rw-r--r-- 1 root root 106 Mar 14 19:56 config.env
-rw-r--r-- 1 root root 1522 Mar 14 19:56 config.json
-rw------- 1 root root 241 Mar 14 19:56 fe38c4124f36d0a5b2a38ea7dd58fe88ac92980286f1f6a7b7ed3ced7c994374-json.log
-rw-r--r-- 1 root root 126 Mar 14 19:56 hostconfig.json
-rw-r--r-- 1 root root 13 Mar 14 19:56 hostname
-rw-r--r-- 1 root root 181 Mar 14 19:56 hosts
drwxr-xr-x 2 root root 4096 Mar 14 19:56 root
文件 e38c4124f36d0a5b2a38ea7dd58fe88ac92980286f1f6a7b7ed3ced7c994374-json.log 是容器的日志文件。每一行是一个 JSON 对象并且对于容器输入和输出的每一行这有一个界限。
{"log":"root@c835298de6dd:/# ls\r\n","stream":"stdout","time":"2014-03-14T22:15:15.155863426Z"}
{"log":"bin boot dev\u0009etc home lib\u0009lib64 media mnt opt\u0009proc root run sbin selinux\u0009srv sys tmp usr var\r\n","stream":"stdout","time":"2014-03-14T22:15:15.194869963Z"}
可通过编写或使用数据收集器,解析日志文件的json对象,并把数据收集到特定的地方。在一个在线环境,实际的日志内容可以被发送到一个 elasticsearch 集群,并使用 kibana 或 graylog2 查看。二选一,这也有使用 JSON 工作的主机服务。
这个方法提供了一下好处:
主机可以使用一个单独的收集 agent 转发任何容器的日志到一个中央日志服务器.
不需要要求应用程序使用 syslog 或是写日志到特定的卷。
主机可以访问容器日志以及任何在容器文件系统上的日志文件。
主机可以为容器轮转日志。
这个方法的一个缺点就是它直接访问 docker 文件系统而没有使用 API,这意味着它在未来可能出现问题,因为如果未来 docker 版本改变了它怎样在主机文件系统存储容器日志的话。
- 浏览: 5041893 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (2844)
- java (1094)
- hadoop (37)
- jvm (39)
- hbase (11)
- sql (25)
- 异常 (83)
- div css (6)
- 数据库 (95)
- 有趣的code (15)
- struts2 (6)
- spring (124)
- js (44)
- 算法 (65)
- linux (36)
- hibernate (7)
- 中间件 (78)
- 设计模式 (2)
- 架构 (275)
- 操作系统 (91)
- maven (35)
- tapestry (1)
- mybatis (9)
- MQ (101)
- zookeeper (18)
- 搜索引擎,爬虫 (208)
- 分布式计算 (45)
- c# (7)
- 抓包 (28)
- 开源框架 (45)
- 虚拟化 (12)
- mongodb (15)
- 计算机网络 (2)
- 缓存 (97)
- memcached (6)
- 分布式存储 (13)
- scala (5)
- 分词器 (24)
- spark (104)
- 工具 (23)
- netty (5)
- Mahout (6)
- neo4j (6)
- dubbo (36)
- canal (3)
- Hive (10)
- Vert.x (3)
- docker (115)
- 分布式追踪 (2)
- spring boot (5)
- 微服务 (56)
- 淘客 (5)
- mesos (67)
- php (3)
- etcd (2)
- jenkins (4)
- nginx (7)
- 区块链 (1)
- Kubernetes (92)
- 驾照 (1)
- 深度学习 (15)
- JGroups (1)
- 安全 (5)
- 测试 (16)
- 股票 (1)
- Android (2)
- 房产 (1)
- 运维 (6)
- 网关 (3)
最新评论
-
明兜3号:
部署落地+业务迁移 玩转k8s进阶与企业级实践技能(又名:Ku ...
Kubernetes系统常见运维技巧 -
q328965539:
牛掰啊 资料收集的很全面
HDFS小文件处理解决方案总结+facebook(HayStack) + 淘宝(TFS) -
guichou:
fluent挂载了/var/lib/kubelet/pods目 ...
kubernetes上部署Fluentd+Elasticsearch+kibana日志收集系统 -
xu982604405:
System.setProperty("java.r ...
jmx rmi 穿越防火墙问题及jmxmp的替代方案 -
大漠小帆:
麻烦问下,“获取每个Item相似性最高的前N个Item”,这个 ...
协同过滤推荐算法在MapReduce与Spark上实现对比
发表评论
-
使用Jenkins进行持续构建与发布应用到Kubernetes集群中
2017-10-10 13:45 1678本文已归档到kubernetes-handbook中的【最 ... -
docker数据卷(volume)
2017-09-29 10:08 10081.什么是数据卷volume 为了了解什么是Do ... -
space issue on docker devmapper and CentOS7
2017-09-28 10:43 1662报错信息: devmapper: Thin Pool ha ... -
Docker 安装 TensorFlow GPU 实战
2017-09-14 16:08 1438安装背景AI如雨后春笋般的出现,DEVOPS的理论不断深入。所 ... -
docker 清理方案
2017-09-12 14:56 1814我们在使用docker的过程中发现基于swarm使用St ... -
Error starting daemon: layer does not exist
2017-06-02 14:52 3166#systemctl status docker.servi ... -
Docker Compose文件详解 V2
2017-05-08 14:55 1714Compose file reference 语 ... -
docker CE&&EE版本centos安装
2017-04-24 14:46 920Docker自1.13版本以后发行版本有了很大不同,分为了 ... -
Docker EE/Docker CE简介与版本规划
2017-04-24 14:33 896随着Docker的不断流行与发展,docker公司(或称为组 ... -
Docker存储方式选型建议
2017-04-21 18:54 813Docker存储方式提供管理分层镜像和容器的可读写层的具体实 ... -
详解docker存储驱动
2017-04-21 18:40 829目的 理解docker的存储方式 docker的ima ... -
Docker日志收集最佳实践
2017-04-21 17:19 807传统日志处理 说到日志,我们以前处理日志的方式如下: · ... -
docker学习笔记16:Dockerfile 指令 ADD 和 COPY介绍
2017-04-11 14:24 821一、ADD指令 ADD指令的功能是将主机构建环境(上下文) ... -
Dockerfile里指定执行命令用ENTRYPOING和用CMD有何不同?
2017-04-11 13:42 686运行时机不太一样。 RUN是在Build时运行的,先于CM ... -
Docker Dockerfile详解
2017-04-05 18:49 761如何使用 Dockerfile用来创建一个自定义的ima ... -
关于docker包存储结构说明
2017-04-05 17:55 747前段时间与同事交流Docker的安装包层次结构,并沟通相关每 ... -
DockOne技术分享(二十八): OCI标准和runC原理解读
2017-04-05 13:57 786在过去两年中随着互联网和容器技术的发展,几乎主要的所有的IT ... -
centos7安装指定版本docker且使用本地docker 仓库
2017-03-18 08:58 1043由于centos6.x 的libc.so等 动态库的版本都比 ... -
How-to monitor Docker ?
2017-03-12 20:44 1284The use of containers needs a ... -
企业级Docker Registry开源工具Harbor的用户使用指南
2017-02-22 13:35 4054摘要: 本文承接上一篇安装和配置,主要讲解一些关于不同角色 ...
相关推荐
docker日志的清理脚本 ,执行后清理docker的日志
此脚本可以自动清理docker日志,解决日志太多导致磁盘满的问题
使用EFK管理docker日志
k8s+docker日志解析正则表达式.txt
关键看这里吧(Permission denied), 一直没有看正方,以为是配置日志文件 找不到有问题,下面是部分异常 10:35:09,498 |-ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - openFile(null,...
**Docker日志管理ELKF系统使用教程** 在IT运维领域,日志管理是一项至关重要的任务,它能够帮助我们监控、排查系统问题,确保服务稳定运行。ELKF(Elasticsearch, Logstash, Kibana, Fluentd)是常见的日志解决方案...
Logspout 是一个Docker容器,大小仅 14MB,使用 BusyBox 作为其核心,它可以将来自容器应用程序的日志发送到某一个中央位置,比如单一 JSON 对象或者通过 HTTP API 可获得的流式端点。就挖掘的信息方面而言,...
清理docker日志ssh脚本
linux docker日志清理脚本 无需停止服务 日志清理脚本
放置在linux任意位置,赋予执行权限后,执行可以删除docker日志,腾出空间。
filebeat 和 ES 对接 docker 日志在本机测试启动nginx镜像.docker.service - Docker Application Con
在使用Docker管理容器服务时,日志是...在遇到此类问题时,应检查Docker日志驱动设置,特别是涉及到速率限制的参数。通过适当调整这些参数,可以避免因日志量过大导致的日志丢失,从而保证系统的正常运行和故障排查。
docker日志的存储位置:/var/lib/docker/containers/<容器ID>/*.log查看所有容器日志文件大小:临时清理日志文件:trunc
Dockter v0.1.0是一款低开销的开源Docker日志管理工具,专门为以下目的而构建: 实时日志收集-与Docker Engine API通信以访问容器流并收集实时日志 日志聚合-将容器日志存储到集中式数据库中 过滤和搜索功能-通过...
docker默认的日志驱动是json-file,每一个容器都会在本地生成一个/var/lib/docker/containers/containerID/containerID-json.log,而日志驱动是支持扩展的,本章主要讲解的是Fluentd驱动收集docker日志. Fluentd是用于...
Docker有很多的日志插件,默认使用 json-file,只有使用json-file时,sudo docker logs -f 才可以显示,输入以下命令查看docker日志插件: $ sudo docker info | grep Logging 这里先说明一下,当容器运行时,...
尽管Docker本身没有内置的Logstash驱动,但我们可以通过GELF(Graylog Extended Log Format)输入插件来间接实现Logstash收集Docker日志。 在使用Logstash之前,需要对Docker和Logstash的基本操作有一定的了解。...
【MongoDB存储Docker日志详解】 在现代的分布式系统中,日志管理扮演着至关重要的角色,它能帮助我们追踪系统状态、诊断错误并快速解决问题。Docker作为流行的容器化平台,提供了多种日志管理策略,其中之一就是...
Docker 日志管理基础命令 Docker 日志管理是容器化应用程序的重要组件,通过有效的日志管理,可以对容器的运行状态和性能进行监控和优化。 Docker 日志管理基础命令是 Docker 容器日志管理的基础,掌握这些命令可以...