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 字段,就可以看出来是什么系统。

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

相关推荐
acd120093 分钟前
一次线上OOM排查实录:从jmap到代码重构,我踩过的坑全在这了
容器·重构·kubernetes
evans在进步1 小时前
Spring Boot 核心机制详解:可执行 JAR、CORS、静态资源与配置绑定
spring boot·后端·jar
Sayuanni%31 小时前
SpringBoot 从注解到源码:核心知识点总结
java·spring boot·后端
吕海洋1 小时前
目前可用的docker源2026.08
运维·docker·容器
陈随易2 小时前
Bun v1.4 更新总结:把浏览器、图片、定时任务和工程工具都装进一个运行时
前端·后端·程序员
人间凡尔赛3 小时前
2026 后端架构三驾马车:Wasm 容器上 K8s、存算分离与 AI 原生
后端·云原生·架构
凤山老林3 小时前
动态 i18n 体系落地:Spring Boot 多租户热加载与前后端协同实践
java·spring boot·后端·i18n
东风破_3 小时前
TypeScript 高级类型进阶:keyof、Exclude、Record 与类型组合思想
前端·后端·typescript
gsls2008084 小时前
Penpot Docker 部署与 MCP 服务配置文档
运维·docker·容器·原型·penpot
天蓝不会忘记024 小时前
k8s集群部署的方法原理
云原生·容器·kubernetes