90%的人都不知道:Docker 容器 apt 报错 404 的幕后黑手竟是它!

大家有没有遇到过这样的情况:你准备在本地跑某个开源项目,你找到了这个开源项目的镜像名称,也将这个镜像 docker pull 下来了,但是在运行的过程中,你发现容器中需要安装某些软件才能够继续......

本来以为可以通过简单的安装命令即可安装好软件,然而却报下面类似的错误:

起初,我还以为是系统镜像源的问题,但是当我更换了镜像源了之后,发现依旧还是这个错误,😢

问题原因

最后问了一下 AI 才知道这是因为:

  1. 系统是 Debian 10 (Buster)
  2. Debian Buster 已经停止官方支持 (End-of-Life, EOL)

Debian 官方已将 Buster 版本的软件包从主服务器 (deb.debian.org) 移除,转移到了 存档服务器 (archive.debian.org) 。所以,现在使用 apt 就会找不到文件。

解决方案

1. 先备份原配置,免得改乱了,无法恢复

bash 复制代码
cp /etc/apt/sources.list /etc/apt/sources.list.bak

2. 批量替换为存档源:

直接使用 sed 命令进行批量替换,将所有源地址换成存档服务器地址。

bash 复制代码
# 将主源和安全源地址都替换为存档服务器地址
sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list
sed -i 's/security.debian.org/archive.debian.org/g' /etc/apt/sources.list

3. 清理废弃的更新源:

存档服务器通常没有 -updates/updates 这些子目录,我们把这些引用清理掉,避免再次报错。

bash 复制代码
# 移除所有 *-updates 相关的行
sed -i '/buster-updates/d' /etc/apt/sources.list
sed -i '/buster\/updates/d' /etc/apt/sources.list

4. 重新尝试安装 Git:

配置修改完成后,再次更新并安装 Git。这次,apt 就会向正确的存档服务器请求文件了!

bash 复制代码
# 重新更新索引,确认不再报错 404
apt update

# 成功安装 Git!
apt install -y git

# 验证安装是否成功
git --version

这样问题就解决了~

不知道容器所用的系统

不确定容器使用的什么系统,就不方便使用安装命令,当然了,你也完全可以敲敲 aptyum ...... 看这些安装软件的工具存不存在,如果存在则直接使用这些命令进行安装,但是我还是建议你先查看清楚使用的是什么系统为好。

bash 复制代码
# 尝试查看发行版信息,这是最准确的方法
cat /etc/os-release

通过查看 ID 字段,就可以看出来是什么系统。

希望以后你遇到类似的问题的时候,也可以避避坑吧~

相关推荐
java_logo11 分钟前
2026 Docker 国内镜像加速配置教程
运维·docker·容器·docker镜像·docker镜像源·docker镜像加速·docker镜像国内库
金銀銅鐵19 分钟前
[Java] 如何理解 class 文件中方法的 access flags?
java·后端
夜微凉428 分钟前
MySQL 事务 ACID
后端
狼爷1 小时前
百万QPS多场次秒杀系统架构全解:解耦设计、防超卖、流量防护体系
后端·架构
IT策士1 小时前
Docker从0到1再到 Kubernetes 实战:第15篇Compose 中的服务依赖、健康检查与启动顺序
docker·容器·kubernetes
Waay1 小时前
K8s Deployment 滚动更新与回滚深度详解(含踩坑实录+生产选型原理)
云原生·容器·kubernetes
“码”力全开1 小时前
深度解析:基于 Docker 与边缘计算的 AI 视频管理平台架构——打通 GB28181/RTSP 协议与“源码交付”的高效集成方案
人工智能·docker·边缘计算
顾默@1 小时前
双系统Ubuntu18.04升级22.04,安装docker进行openclaw安装
运维·docker·容器
木卫二号Coding1 小时前
打包容器有两种方式
docker
ruxingli2 小时前
Golang iota详解
开发语言·后端·golang