ubuntu

Ubuntu Docker如何进行故障排查

小樊
42
2025-10-10 00:30:41
栏目: 智能运维

Ubuntu Docker故障排查指南

一、基础状态检查

  1. 确认Docker服务运行状态
    使用systemctl status docker查看Docker服务是否处于active (running)状态。若未运行,执行sudo systemctl start docker启动服务;若启动失败,继续查看服务日志(journalctl -u docker.service)定位具体原因(如依赖缺失、配置错误)。
  2. 检查容器状态
    运行docker ps -a查看所有容器(包括已停止的),重点关注Exited(异常退出)或Created(创建但未启动)状态的容器。记录容器ID或名称,用于后续日志分析。

二、日志分析定位问题

  1. 查看Docker守护进程日志
    使用journalctl -u docker.service查看Docker服务的详细日志,可获取服务启动、容器运行期间的系统级错误(如端口冲突、磁盘空间不足、镜像拉取失败)。
  2. 查看容器日志
    对目标容器执行docker logs <container_id>,查看容器内应用的输出日志(如应用崩溃、配置文件缺失、依赖未安装)。若容器已停止,可通过--tail-f参数查看最近日志或实时跟踪(例如docker logs --tail 50 -f <container_id>)。

三、常见故障场景及解决方法

1. 容器无法启动

2. 网络连接问题

3. 镜像与容器配置问题

四、高级排查工具

  1. 进入容器调试
    使用docker exec -it <container_id> /bin/bash(或/bin/sh,取决于容器内Shell类型)进入容器,手动执行命令(如ls查看目录、cat /etc/hosts查看主机名解析、ping测试网络),模拟应用运行环境,定位问题。
  2. 重建Docker网络
    若网络问题持续存在(如容器无法互通、无法访问外网),重启Docker服务(sudo systemctl restart docker)重建默认网络(如bridge网络);或删除并重新创建自定义网络(docker network rm <network_name>docker network create <network_name>)。
  3. 使用第三方工具
    • 监控工具:部署Prometheus+Grafana监控Docker容器的资源使用情况(CPU、内存、磁盘、网络),及时发现资源瓶颈。
    • 日志管理:使用Fluentd+ELK(Elasticsearch+Logstash+Kibana)收集、分析Docker日志,快速定位日志中的关键字(如errorfailed)。

0
看了该问题的人还看了