• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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容器迁移到其他服务器的5种方法详解
    下一篇:浅谈Docker run 容器处于created状态问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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