docker logs-查看docker容器日志的实现

 更新时间:2021年03月19日 09:13:26   作者:大浪滔滔  
这篇文章主要介绍了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 ls
docker 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 service logs的详细介绍,可以参考官方文档

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • docker-swarm教程之安全保护加密数据的方法详解

    docker-swarm教程之安全保护加密数据的方法详解

    默认情况下,集群管理器使用的raft 算法的日志在磁盘上加密,这种静态加密可保护服务配置和数据免受访问加密Raft日志的攻击者的攻击,因此引入了Docker secret功能,来保证加密文件的安全,本文将给大家详细的介绍一下如何安全的保护加密数据
    2023-08-08
  • Docker容器应用中,10个要不得的坏习惯

    Docker容器应用中,10个要不得的坏习惯

    这篇文章主要介绍了Docker容器的应用中,10个要不得的坏习惯,帮助大家更好的理解和使用docker,感兴趣的朋友可以了解下
    2020-08-08
  • docker如何安装doris

    docker如何安装doris

    文章介绍了使用Docker安装Apache Doris的两种方法:通过Docker Compose部署和手动部署,前者通过创建`docker-compose.yml`文件并运行命令来启动集群,后者则需要手动拉取镜像、启动容器、复制安装包并解压、配置并启动服务
    2025-02-02
  • 使用Docker容器运行Mysql实战记录

    使用Docker容器运行Mysql实战记录

    这篇文章主要给大家介绍了关于使用Docker容器运行Mysql的相关资料,助大家更好的理解和学习使用docker,感兴趣的朋友可以了解下,需要的朋友可以参考下
    2023-09-09
  • 解决docker容器重启之后/etc下某些配置文件被重置的问题

    解决docker容器重启之后/etc下某些配置文件被重置的问题

    这篇文章主要介绍了解决docker容器重启之后/etc下某些配置文件被重置的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker部署Nuxt.js项目的实现

    Docker部署Nuxt.js项目的实现

    这篇文章主要介绍了Docker部署Nuxt.js项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 使用jib打包docker镜像实战

    使用jib打包docker镜像实战

    这篇文章主要介绍了使用jib打包docker镜像实战,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Intellij IDEA快速实现Docker镜像部署的方法步骤

    Intellij IDEA快速实现Docker镜像部署的方法步骤

    本文主要介绍了Intellij IDEA快速实现Docker镜像部署的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 在docker容器中elasticsearch的导入导出方式

    在docker容器中elasticsearch的导入导出方式

    文章详细介绍了如何使用Docker拉取Elasticsearch镜像,并导出和导入索引数据,还讨论了在Elasticsearch Head中解决请求头显示不正确的问题,包括从容器中复制文件、编辑文件和将文件回传到容器
    2025-11-11
  • docker部署vue项目的实现步骤

    docker部署vue项目的实现步骤

    当我们在本地开发了一个vue项目之后,肯定是想部署到服务器上供其他人访问,本文主要介绍了docker部署vue项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论