ubuntu官方容器更换清华apt源

1. 问题描述

使用 docker hub 官方 ubuntu 镜像,版本 22.04 LTS

# 查看 ubuntu 版本
cat /etc/lsb-release

ubuntu 版本查询结果
进入清华软件镜像站,选择ubuntu。选择正确版本,对照上面查询结果的DISTRIB_DESCRIPTION,我的是22.04 LTS
在这里插入图片描述

按照清华源教程直接更换源,提示报错,无法完成更新,显示如图错误:
直接换源产生错误

2. 原因分析

  1. docker hub 官方的 ubuntu 镜像极度精简,很多必要的软件包没有安装

3. 解决方法

  1. 分析更新失败原因,找到更新源之前需要安装的软件包
    更新失败原因分析可看出更新失败是缺少ca-certificates这个软件包
  2. 换回原版apt源,先安装必要的apt软件包
    经验教训: 更改所有的配置前都要做好备份,记录相关操作,不然哪次更改之后改挂了,那就真的挂了
    1. 进入 docker 容器中的交互式命令台,以便对容器中的 ubuntu 系统进行操作
      个人感觉讲的比较好的docker教程
      容器名my_ubuntu_02,使用bash作为命令台的 shell,容器名根据自己创建的容器修改
      docker exec -it my_ubuntu_02 /bin/bash
      
    2. 恢复之前的备份文件
      # docker 容器中的命令行默认使用 root 权限,以下指令均在容器中的 root 用户下执行
      # ubuntu 的 apt源配置文件:/etc/apt/sources.list
      
      # 备份操作:使用 cp 命令,复制原文件、保存到原来的目录下,并改名(添加 .bak 的后缀)
      cp /etc/apt/sources.list /etc/apt/sources.list.bak
      
      # 还原操作:使用 cp 命令,复制备份文件,并改回原配置文件的名称(去掉 .bak 后缀)
      # 还原操作相当于备份操作反过来
      cp /etc/apt/sources.list.bak /etc/apt/sources.list
      
    3. 使用原来的软件源安装ca-certificates这个软件包
      # 1. 清理 apt 软件源管理工具中原地址的缓存
      apt clean
      
      # 2. 更新 apt 的缓存
      apt-get update -y
      
      # 3. 安装 ca-certificates
      apt-get install -y ca-certificates
      
      # 4. (可选) 安装任意一款 文本编辑器,以方便接下来修改配置文件
      # Linux 常用文本编辑器:wim、nano、emacs
      apt-get install <上述任意一个文本编辑器名>
      # 如安装 nano
      apt-get install nano
      
      # 不安装也行,但要用 Linux 系统自带指令来修改文件
      # 个人建议:不建议安装,因为原来系统过于精简,不论安装哪个都需要附加大量的必要运行环境
      #          需要 100M + 的空间,让 docker 容器变得过于臃肿
      
  3. 再按照清华源的操作,更新软件源
    注意事项: docker hub 官方镜像中,像样的文本编辑器:vi、wim、nano 一个都没有,所以只能用系统指令来修改配置文件中的内容 或 在换回原来的源时安装上述任意一个文本编辑器(即上述第四点,可选部分)
    1. 备份当前配置文件

      # 使用 cp 命令:复制原文件、保存到原来的目录下,并改名(添加 .bak 的后缀)
      
      cp /etc/apt/sources.list /etc/apt/sources.list.bak
      
    2. 清空配置文件

      # 使用 echo 指令,配合输出重定向 > 
      # 将空字符 "" 覆盖到配置文件 /etc/apt/sources.list
      
      echo "" > /etc/apt/sources.list
      
    3. 将清华源中的地址添加进入配置文件
      在这里插入图片描述

      # 使用 echo 指令,配合输出重定向 > 
      # 将上述红框部分的内容(不带 # 的语句--不是备注),追加到配置文件 /etc/apt/sources.list 中
      # 逐条执行以下语句
      
      echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse" >> /etc/apt/sources.list
      echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse" >> /etc/apt/sources.list
      echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse" >> /etc/apt/sources.list
      echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse" >> /etc/apt/sources.list
      
    4. 使用apt指令,更新软件源

      # 1. 清理 apt 软件源管理工具中原地址的缓存
      apt clean
      
      # 2. 更新 apt 的缓存
      apt-get update
      
    5. (可选)测试换源是否成功
      下载安装软件包curl,并查看 curl 是否可顺利运行
      curl是 Linux 平台广泛使用的传输工具,可利用 http 协议实现文件上传/下载

      # 1. 安装 curl
      apt-get install curl
      
      # 2. 查看 curl版本信息
      curl -V
      

      curl版本输出结果:
      在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值