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

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

相关推荐
leoZ2311 小时前
项目改造为 Docker 容器使用指南
运维·docker·容器
Apifox.1 小时前
Apifox 近期更新|AI Agent Debugger、A2A Debugger、Postman API 导入、Ask AI 侧边栏对话
前端·人工智能·后端·测试工具·测试用例·postman
灰灰老师1 小时前
Ubuntu 24.04 使用 Nginx + Docker Tomcat9 + HTTPS 完整部署教程
nginx·ubuntu·docker
星辰_mya1 小时前
领域驱动设计(DDD)“老中医”治理订单
java·后端·面试·架构
http阿拉丁神猫1 小时前
Docker知识点汇总(6~10)
运维·docker·容器
陈陈CHENCHEN1 小时前
【Kubernetes】Ubuntu 24.04 二进制方式部署 K8s
云原生·容器·kubernetes
YF02111 小时前
Protobuf与 gRPC 的关系:从理论到 Android + Go 实战通信全解析
android·后端·grpc
ZJY1322 小时前
2-1:在NestJS中使用mikro-orm
后端·nestjs