docker logs如何查看docker容器日志
这篇文章将为大家详细讲解有关docker logs如何查看docker容器日志,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
通过docker logs命令可以查看容器的日志。
命令格式:
$ docker logs [OPTIONS] CONTAINER Options: --details 显示更多的信息 -f, --follow 跟踪实时日志 --since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟) --tail string 从日志末尾显示多少行日志, 默认是all -t, --timestamps 显示时间戳 --until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
例子:
查看指定时间后的日志,只显示最后100行:
$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
$ docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
查看某时间段日志:
$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
补充:Docker容器的调试技巧:docker logs 与 docker service logs
调试容器
不少刚接触Docker的同学,通常面对docker容器起不来,或者一直在重复启动中不知措施。
docker提供了一系列简单命令,很容易调试容器运行中的问题。
原理很简单,就是可以直接输出容器运行时(或过去式的)的日志。
通常有4种方式:
docker run
(控制台上启动容器)
docker exec
(附加进入后台容器)
docker logs
docker service logs
下面依次介绍之
控制台启动容器
打个比如调试启动redis容器
docker run -it -rm redis redis-server [redis 启动参数略...]
这样redis-server的日志输出直接打印到控制台上
缺点是,这种方式仅供启动容器调试时使用,无法操作后台运行中的容器,或已失效的容器。
docker exec 附加进入后台容器
有时候需要进入容器内,查看系统运行状况。这时候可以使用docker exec。
使用docker exec的前提是容器在运行中。因此当容器不能正常工作时,往往无法使用该命令
docker logs
实际上docker容器不管处于什么状态,都可以使用docker logs获取 容器的所有日志。
docker logs [容器名]
docker logs还有局限性,即无法获取docker swarm模式下,启动失败的容器日志
docker service logs
针对docker swarm模式,获取容器日志的命令。
一般,依次执行下列命令,得到某服务的容器名
docker service lsdocker service ps [服务名]
然后就可以通过容器名,获取其日志了
docker service logs [容器名]
docker service logs显示日志为空
要让 docker service logs 正常工作,需要设置docker一些配置
vi /etc/docker/daemon.json
给该文件添加:
{ "log-driver": "json-file", "log-opts": { "labels": "production_status,geo", "env": "os,customer" }}
然后重启docker
service docker restart
关于“docker logs如何查看docker容器日志”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341