linux运维异常(总) - 排查与修复(系统yum,docker,网络dns解析等)

全文目录,一步到位

  • 1.前言简介
  • [2. linux-centos7.9运维异常排查](#2. linux-centos7.9运维异常排查)
    • [2.1 任意docker指令卡住](#2.1 任意docker指令卡住)
      • [2.1.1 先看看docker状态](#2.1.1 先看看docker状态)
      • [2.1.2 docker没删除干净](#2.1.2 docker没删除干净)
      • [2.1.3 可以开始安装docker了](#2.1.3 可以开始安装docker了)
    • [2.2 yum报错](#2.2 yum报错)
      • [2.2.1 报错原因](#2.2.1 报错原因)
      • [2.2.2 替换国内阿里镜像源](#2.2.2 替换国内阿里镜像源)
    • [2.3 网络报错排查](#2.3 网络报错排查)
      • [2.3.1 网络测试(IP)](#2.3.1 网络测试(IP))
      • [2.3.2 网络测试(DNS解析->域名访问)](#2.3.2 网络测试(DNS解析->域名访问))
        • [=> 2.3.2.1 正常情况 图片为正常](#=> 2.3.2.1 正常情况 图片为正常)
        • [=> 2.3.2.2 异常情况(dns修复)](#=> 2.3.2.2 异常情况(dns修复))
      • [2.3.3 测试http/https 请求访问curl测试](#2.3.3 测试http/https 请求访问curl测试)
    • [2.4 docker pull拉取失败排查](#2.4 docker pull拉取失败排查)
    • [2.5 yum安装net-tools](#2.5 yum安装net-tools)
  • [3. 文章的总结与预告](#3. 文章的总结与预告)
    • [3.1 本文总结](#3.1 本文总结)
    • [3.2 下文预告](#3.2 下文预告)

1.前言简介

linux运维异常(总) - 排查与修复(系统yum,docker,网络dns解析等) 在遇到在补充

2. linux-centos7.9运维异常排查

2.1 任意docker指令卡住

2.1.1 先看看docker状态

Active 状态异常:activating (start) 表示 Docker 卡在「启动中」状态,未进入正常的 active (running) 运行状态

试试重启 systemctl restart docker

-> 最终: 不管操作什么 都是卡住

先挨个排除 第一个

资源不足

containerd异常

没删除干净

2.1.2 docker没删除干净

删除步骤

bash 复制代码
# 1. 列出所有已安装的 docker/containerd/runc 复制输出的包名(
rpm -qa | grep -E 'docker|containerd|runc'

# 2.1 精准卸载
yum remove -y docker-***(替换一下)

# 2.2 批量卸载
yum remove -y $(rpm -qa | grep -E 'docker|containerd|runc' | xargs)

# 3.1 停止所有残留的docker/containerd进程
ps -ef | grep -E "dockerd|containerd|docker" | grep -v grep | awk '{print $2}' | xargs kill -9 2>/dev/null

# 3.2 验证进程是否清理干净(无输出则成功)
ps -ef | grep -E "dockerd|containerd" | grep -v grep

# 4.1 停止并禁用docker服务(即使已卸载,先执行)
systemctl stop docker 2>/dev/null
systemctl disable docker 2>/dev/null

# 4.2 删除docker.service配置文件(核心!)
rm -rf /usr/lib/systemd/system/docker.service
rm -rf /etc/systemd/system/docker.service
rm -rf /etc/systemd/system/docker.service.d  # 自定义配置目录

# 4.3 重置systemd配置,刷新服务列表
systemctl daemon-reload
systemctl reset-failed  # 清理失败的服务状态

# 4.4 验证服务是否清理(无输出则成功)
systemctl list-unit-files | grep docker


# 5.1 核心数据/配置目录(全部删除,无数据则提示"没有那个文件或目录",忽略即可)
rm -rf /var/lib/docker       # Docker核心数据(镜像/容器/存储)
rm -rf /etc/docker           # 配置文件目录
rm -rf /var/run/docker       # 运行时临时文件(sock文件、pid文件等)
rm -rf /var/log/docker       # 日志目录
rm -rf /usr/bin/dockerd      # 残留的可执行文件
rm -rf /usr/bin/containerd   # containerd残留文件

# 6.1 验证有无进程
ps -ef | grep -E "dockerd|containerd" | grep -v grep
# 6.2 无服务配置
systemctl status docker  # 应提示"Unit docker.service could not be found."
# 6.3 无残留目录(可选验证)
ls -ld /var/lib/docker /etc/docker  # 应提示"没有那个文件或目录"

2.1.3 可以开始安装docker了

文章链接=========>

2.2 yum报错

2.2.1 报错原因

CentOS 7 官方镜像源已于 2024 年 6 月 30 日停止维护(EOL),系统默认的 mirrorlist.centos.org 地址失效,导致 yum 无法解析镜像地址、找不到可用的 base 源,进而安装包失败。

2.2.2 替换国内阿里镜像源

bash 复制代码
# 1. 备份所有centos官方repo文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
mv /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/CentOS-*.repo.bak 2>/dev/null

# 2. 下载阿里云CentOS7镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 3. 清理旧缓存
yum clean all

# 4. 生成新缓存(不报错即为成功)
yum makecache

# 5. 重新安装yum-utils(下面得也可以,任选其一)
yum install -y yum-utils
yum install -y yum-utils device-mapper-persistent-data lvm2

# 6. 验证:无报错则说明yum源已修复
yum list yum-utils

2.3 网络报错排查

一步一步试验

2.3.1 网络测试(IP)

图中即为成功,其他均不成功

bash 复制代码
# 1. ping 谷歌DNS(全球通用,稳定)
ping -c 3 8.8.8.8

# 2. ping 阿里云DNS(国内更稳定)
ping -c 3 223.5.5.5

# 3. ping 百度IP(备选)
ping -c 3 110.242.68.3

2.3.2 网络测试(DNS解析->域名访问)

bash 复制代码
ping -c 3 www.baidu.com
ping -c 3 www.qq.com
=> 2.3.2.1 正常情况 图片为正常
=> 2.3.2.2 异常情况(dns修复)

Name or service not known

bash 复制代码
# 1. 备份原有DNS配置
cp /etc/resolv.conf /etc/resolv.conf.bak

# 2. 写入阿里云DNS
echo "nameserver 223.5.5.5
nameserver 223.6.6.6
nameserver 8.8.8.8  # 谷歌DNS(备选)
nameserver 119.29.29.29  # 腾讯DNS(备选)" > /etc/resolv.conf

# 3. 关闭resolv.conf的自动覆盖ps: CentOS7/8默认被NetworkManager改写
chattr +i /etc/resolv.conf  

=然后重复上面的dns验证=

2.3.3 测试http/https 请求访问curl测试

用curl访问百度HTTPS(返回状态码200即正常) -I 只返回响应头,速度快

bash 复制代码
curl -I https://www.baidu.com  

如果不通 则开放防火墙

bash 复制代码
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload

2.4 docker pull拉取失败排查

2.4.1设置一下docker仓库

使用用国内镜像, 默认没有这个文件

bash 复制代码
cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": 
[
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}
EOF

然后在操作相关指令

bash 复制代码
# 1. 重新加载Docker守护进程配置
systemctl daemon-reload

# 2. 启动Docker服务
systemctl restart docker

# 3. 验证配置是否生效
docker info

测试一下

bash 复制代码
docker pull hello-world

2.5 yum安装net-tools

安装 net-tools(包含 netstat、ifconfig、route 等常用网络命令)

bash 复制代码
# 安装 net-tools
yum -y install net-tools

# 查看所有监听端口(常用命令,验证 netstat 正常)
netstat -tuln

# 查看 netstat 版本(可选)
netstat -V

3. 文章的总结与预告

3.1 本文总结

linux异常总结 使用中遇到得各种问题 记录一下,在遇到再补充

3.2 下文预告


@author: pingzhuyan
@description: ok
@year: 2024

相关推荐
Ribou1 小时前
LDAP安装docker版
运维·docker·容器
问道飞鱼1 小时前
【Linux知识】Shell 脚本参数详解:从基础到高级应用
linux·运维·服务器·shell
观音山保我别报错1 小时前
文件操作指南
linux·运维·服务器
JiMoKuangXiangQu2 小时前
Linux 内存管理 (6):slub 分配器
linux·内存管理·slab
NetInside_2 小时前
基于 Gartner 2025 报告:数字体验监测(DEM)核心价值与企业落地指南
运维·云原生
weixin_307779132 小时前
Jenkins 多分支流水线自动化引擎:GitHub Branch Source 插件完全指南
运维·架构·自动化·jenkins
_F_y2 小时前
Linux中gdb的使用
linux
谢某清心寡欲2 小时前
搭建Linux源码阅读环境
linux
孫治AllenSun2 小时前
【Doris】运维命令
运维·服务器·网络