linux+docker问题排查常用命令

本文介绍了如何在Linux环境中排查Docker容器内存占用过高问题,包括使用top和ps命令监控资源,通过docker命令管理服务。同时,针对Docker容器内vi命令缺失和启动报错的情况,提供了相应解决方案,如拷贝文件修改后再拷回容器,以及检查iptables配置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、网络常用命令

# 查看地址信息
ifconfig
# 测试网络连通性
ping IP
# 测试端口连通性,二选一,没拒绝就说明端口能通
telnet IP PORT
# 测试端口连通性,二选一,没拒绝就说明端口能通
exec 3<>/dev/tcp/119.3.107.170/1433

在这里插入图片描述

二、排查docker容器占用过高,宿主机内存处理

使用top查看内存服务器资源情况

在服务器中,通过 top 查看是否有进程的用户态(us)过高,运行状态中输入M按内存使用率降序排列进程

top
<
<think>好的,我现在需要帮助用户找到用于Docker故障排查的命令列表及用法。首先,用户的问题是关于Docker故障排查的,所以我要从提供的引用中提取相关的命令信息。 首先看引用[1],提到了docker images命令,用于列出本地镜像,可能在排查镜像问题时有用。然后引用[2]提到了docker run和docker logs,这两个命令分别用于运行容器查看日志,日志是排查故障的重要部分。另外还提到了systemctl status docker和journalctl -u docker.service,这些是查看Docker服务状态和系统日志的命令,属于服务级别的故障排查。 引用[3]里有一个有用的命令,docker inspect,可以结合进程ID查找容器,这对定位容器问题有帮助。另外还提到通过docker ps查看容器列表,这也是常用的命令。引用[4]汇总了更多的LinuxDocker命令,比如文件操作、日志查看、端口检测等,虽然用户主要关注Docker,但结合系统命令可能更全面。 接下来需要将这些信息分类整理。常见的故障类型包括容器启动失败、服务状态异常、日志分析、资源占用过高等。对应每个场景,列出相应的Docker命令。例如,启动类问题docker run和docker start,日志查看docker logs,资源监控用docker stats。同时,结合系统命令如top、netstat、tcpdump等,可以更深入分析问题。 需要确保每个命令的用法正确,并给出简要说明。比如docker logs --tail 100 -f container_name可以实时查看最后100行日志。另外,像docker inspect这种需要参数的命令,要说明常用参数如-f的格式化输出。 还要注意用户可能需要的不仅仅是Docker命令,还有相关的系统工具,比如检查端口占用情况用netstat或ss,检查进程资源占用用top或htop。这些虽然不是Docker专属,但在排查Docker相关问题时经常用到。 最后,需要检查所有命令是否符合用户需求,是否有遗漏。比如,docker exec用于进入容器执行命令,这在调试容器内部问题时非常关键。还有docker-compose相关的命令,如果用户使用compose管理服务,也需要包含进去。 总结下来,应该分步骤列出命令,按故障排查的场景分类,如服务状态、容器操作、日志分析、资源监控等,每个部分给出对应的命令和用法示例,确保用户能够一步步排查问题。</think>### Docker故障排查常用命令及用法指南 --- #### 一、**服务状态检查** 1. **查看Docker服务状态** ```bash systemctl status docker ``` 用于检查Docker服务是否正常运行,显示服务状态、日志片段和进程信息[^2]。 2. **查看Docker系统日志** ```bash journalctl -u docker.service ``` 显示完整的Docker服务日志,支持时间筛选(如`-S "2023-10-01"`)。 --- #### 二、**容器操作类** 1. **查看容器列表** ```bash docker ps -a # 显示所有容器(包括已停止的) docker ps -q # 仅显示容器ID(常用于批量操作) ``` 2. **启动/停止容器** ```bash docker start <容器名/ID> # 启动容器 docker stop <容器名/ID> # 停止容器 docker restart <容器名/ID> # 重启容器 ``` 3. **进入容器执行命令** ```bash docker exec -it <容器名/ID> /bin/bash # 进入容器终端 docker exec <容器名/ID> ls /app # 执行单条命令 ``` --- #### 三、**日志排查** 1. **查看容器日志** ```bash docker logs <容器名/ID> # 查看全部日志 docker logs --tail 100 <容器名> # 查看最后100行日志 docker logs -f <容器名> # 实时追踪日志 ``` 2. **过滤关键错误** ```bash docker logs <容器名> | grep "error" ``` --- #### 四、**资源与性能分析** 1. **查看容器资源占用** ```bash docker stats # 实时监控所有容器的CPU、内存、网络等 ``` 2. **定位高资源消耗进程** ```bash top 或 htop # 查看系统进程资源占用 docker inspect -f "{{.State.Pid}}" <容器名> # 获取容器PID[^3] ``` --- #### 五、**网络问题排查** 1. **检查容器端口映射** ```bash docker port <容器名> # 显示容器端口映射关系 ``` 2. **测试网络连通性** ```bash docker exec <容器名> curl http://目标地址:端口 ``` 3. **抓包分析** ```bash tcpdump -i docker0 # 监听Docker默认网桥流量[^4] ``` --- #### 六、**镜像与存储** 1. **查看本地镜像** ```bash docker images # 显示镜像名称、标签、大小[^1] ``` 2. **检查容器文件系统** ```bash docker diff <容器名> # 查看容器内文件变动 ``` --- #### 七、**高级调试** 1. **查看容器元数据** ```bash docker inspect <容器名> # 显示容器完整配置信息 ``` 2. **通过PID定位容器** ```bash docker inspect -f "{{.State.Pid}} {{.Name}}" $(docker ps -q) | grep <PID> ``` --- ### 快速排查流程示例 1. **容器启动失败** → 用`docker logs`看启动错误 2. **服务无响应** → 用`docker stats`检查资源占用 3. **网络不通** → 用`tcpdump`抓包或`docker port`验证映射 4. **进程异常退出** → 用`journalctl`查Docker服务日志 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值