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

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

相关推荐
SomeB1oody1 小时前
【RustyML入门】1.0. 快速上手
开发语言·后端·机器学习·rust·教程
史呆芬1 小时前
分布式事务实战:微服务跨服务数据一致性解决方案
java·后端·spring cloud
犀利豆2 小时前
Claude code tools 研究系列(二)EnterPlanMode
人工智能·后端
用户69371750013842 小时前
AI时代,程序员该往哪走?
前端·后端
Kevin Wang7272 小时前
Nvidia-AGX-spark部署手册——课堂质量诊断(jetpack:r36)
python·docker·容器
Revolution613 小时前
第一次运行 Node.js:终端里的 JavaScript 怎样执行
后端·面试·node.js
Python私教3 小时前
Django 6.1 RC1 实测:FETCH_PEERS 两条 SQL 解决 N+1,select_related 还需要吗?
后端·python·django
大侠在此在在此3 小时前
教你用最简单的数学自底向上地高效学习SQL注入
后端