在旧版本(23.10 及以前)中,所有源都写在一个大文件 /etc/apt/sources.list 里。
在新版本中:
主文件废弃/简化:/etc/apt/sources.list 现在通常只包含一行注释,或者指向新目录。
新位置:官方源被移动到了 /etc/apt/sources.list.d/ubuntu.sources。
新格式:文件格式从传统的 deb http://… 变成了更易读的 DEB822 格式(类似 YAML 的键值对)。
由于格式变了,不能直接用以前的 sed 命令简单替换域名,因为新格式是多行的块状结构。
【
Ubuntu 24.04 (Noble Numbat) 及更新版本正在大力推行新的配置格式,后缀名从 .list 变成了 .sources。
但这并不意味着 .list 被彻底废弃了,目前是一个“新旧共存”的过渡期。
】
1下载公钥 可以跳过【第 1 步:创建密钥环目录并下载公钥】
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg > gpg
2将ASCII码格式公钥(gpg)转换成二进制
[二进制 (Binary)-》armor-》ASCII]
【且最好转换为二进制格式(虽然 ASCII 也可以,但二进制更标准)】
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/dockergpg.gpg
3创建一个.sources 文件在/etc/apt/sources.list.d目录下
docker.sources
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu
Suites: noble
Components: stable
Architectures: amd64 arm64 armhf
Signed-By: /etc/apt/keyrings/dockergpg.gpg
下面整个复制执行
# 1. 获取系统版本代号 (例如: noble, jammy)
CODENAME=$(grep VERSION_CODENAME /etc/os-release | cut -d= -f2)
# 2. 定义你确认存在的密钥文件路径
KEYRING="/etc/apt/keyrings/dockergpg.gpg"
# 3. 再次确认文件是否存在,避免后续报错
if [ ! -f "$KEYRING" ]; then
echo "❌ 警告: 系统未找到文件 $KEYRING"
echo "请确认文件名是否真的包含两个 'g' (dockergpg.gpg),或者先创建该文件。"
# 如果文件确实不存在,取消下面这行的注释来自动下载并重命名为 dockergpg.gpg
# curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o $KEYRING
else
echo "✅ 密钥文件确认存在: $KEYRING"
fi
# 4. 写入 .sources 文件 (注意后缀是 .sources)
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu
Suites: ${CODENAME}
Components: stable
Architectures: amd64 arm64 armhf
Signed-By: ${KEYRING}
EOF
echo "----------------------------------------"
echo "✅ 配置已生成到 /etc/apt/sources.list.d/docker.sources"
echo "内容预览:"
cat /etc/apt/sources.list.d/docker.sources
echo "----------------------------------------"
echo "下一步请运行: sudo apt update"
老:::
创建一个.list 文件在/etc/apt/sources.list.d目录下
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/dockergpg.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
4更新并验证
sudo apt-get -y update
apt-cache policy docker-ce
参考:
https://www.cnblogs.com/Chary/articles/18096680
https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/#:~:text=%E9%A6%96%E5%85%88%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96

852

被折叠的 条评论
为什么被折叠?



