插件窝 干货文章 docker容器一直重启怎么看日志

docker容器一直重启怎么看日志

查看 容器 Docker container 126    来源:    2025-04-08

查看Docker容器重启日志的方法

当Docker容器不断重启时,查看日志是诊断问题的关键步骤。以下是几种查看日志的方法:

1. 查看容器标准输出日志

docker logs <container_name_or_id>

查看最近100行日志:

docker logs --tail 100 <container_name_or_id>

实时查看日志输出:

docker logs -f <container_name_or_id>

2. 查看容器重启前的日志

如果容器已经重启多次,可以查看之前实例的日志:

docker logs --previous <container_name_or_id>

3. 查看容器重启原因和次数

docker inspect -f "{{.State.Restarting}} {{.State.Error}} {{.RestartCount}}" <container_name_or_id>

查看完整状态信息:

docker inspect <container_name_or_id> | grep -A 10 "State"

4. 查看系统日志

如果容器崩溃严重,可能需要查看Docker守护进程日志:

journalctl -u docker.service

或查看系统日志:

cat /var/log/syslog | grep docker

5. 查看容器退出状态

docker inspect -f "{{.State.ExitCode}}" <container_name_or_id>

6. 限制日志输出大小

如果日志很大,可以限制输出:

docker logs --tail 500 <container_name_or_id> | less

7. 直接进入容器查看应用日志

如果容器还能短暂运行:

docker exec -it <container_name_or_id> bash
# 然后查看容器内的应用日志文件

8. 使用第三方日志工具

对于生产环境,考虑使用: - ELK Stack (Elasticsearch, Logstash, Kibana) - Fluentd - Loki + Grafana

常见问题排查

  1. 容器不断重启:检查退出代码和重启策略

    docker inspect -f "{{.State.ExitCode}} {{.HostConfig.RestartPolicy.Name}}" <container_name_or_id>
    
  2. 内存不足:查看OOM状态

    docker inspect -f "{{.State.OOMKilled}}" <container_name_or_id>
    
  3. 健康检查失败:查看健康状态

    docker inspect -f "{{.State.Health.Status}}" <container_name_or_id>
    

通过以上方法,您应该能够找到容器不断重启的根本原因。