You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何查看映射双端口的单个Docker容器日志

查看Docker容器日志的实用方法

嘿,既然你的多端口Docker容器已经正常跑起来了,那我来给你讲讲查看它日志的常用方式,还有一些能帮你高效排查问题的参数技巧:

  • 基础日志查看
    要是你只想一次性看全容器的日志内容,直接执行这条命令就行:
    sudo docker logs database-service
    这里的database-service就是你启动容器时用--name指定的服务名,和你配置的${SERVICE_NAME}对应。

  • 实时跟踪日志(你用的-f参数详解)
    你现在用的-f(follow)参数是用来实时盯着日志输出的,和Linux里的tail -f效果一样。如果执行后没看到内容,大概率是容器当前没产生新日志,或者应用把日志写到了容器内部的文件里(而不是输出到stdout/stderr)。
    另外,你可以搭配--tail参数只跟踪最后N行日志,比如只想看最近100行并实时更新:
    sudo docker logs database-service -f --tail 100

  • 筛选指定时间范围的日志
    要是你只想看某个时间段的日志,用--since--until参数就很方便:

    • 查看最近30分钟的日志:
      sudo docker logs database-service --since 30m
    • 查看2024-05-01 10:00到现在的日志:
      sudo docker logs database-service --since "2024-05-01T10:00:00"
    • 查看某个时间点之前的日志:
      sudo docker logs database-service --until "2024-05-01T12:00:00"
  • 显示日志时间戳
    默认日志可能不带时间,加上-t参数就能给每条日志加上时间戳,排查问题时能更清晰地追踪时序:
    sudo docker logs database-service -t

  • 查看容器内部的日志文件(如果日志没输出到控制台)
    有些应用会把日志写到容器内的文件里(比如/var/log/app.log),这时候你可以通过以下方式查看:

    • 直接在宿主机上读取容器内的日志文件:
      sudo docker exec -it database-service cat /var/log/app.log
    • 进入容器的交互式shell,自己浏览日志:
      sudo docker exec -it database-service bash
    • 把容器内的日志文件拷贝到宿主机上慢慢看:
      sudo docker cp database-service:/var/log/app.log ./app.log

内容的提问来源于stack exchange,提问作者Anand Deshmukh

火山引擎 最新活动