尊敬的技术支持,您好:
问题: 阿里云内网镜像 mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu 的 jammy/stable/binary-amd64/Packages.bz2 与 Release 元数据不一致,导致 apt update 持续报错。
环境:
系统:Ubuntu 22.04 LTS (jammy) amd64
复现步骤与证据:
只更新基础 Ubuntu 源(正常):
sudo apt-get update -o Dir::Etc::sourcelist="sources.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
输出:全部 Hit,成功。
只更新 docker-ce 源(报错):
sudo apt-get update -o Dir::Etc::sourcelist="/etc/apt/sources.list.d/docker.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
输出:
Get:2 http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu jammy/stable amd64 Packages [87.5 kB]
Err:2 ... File has unexpected size (86998 != 87455). Mirror sync in progress? [IP: 100.100.2.148 80]
Hashes of expected file:
- Filesize:87455 [weak]
- SHA256:5b114e9b6ab8ecb51eb75360b6f9c3eceecb5a3582e220b743e179d6849e6aac
...
Release file created at: Tue, 15 Sep 2026 16:47:43 +0000
影响: 无法通过 apt 安装/更新 Docker,依赖 Docker 的软件(如 1Panel)安装失败。
诉求:
请检查并修复 mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu 的同步状态;
确认 dists/jammy/stable/binary-amd64/Packages.bz2 与 Release 文件的大小/哈希一致性;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个报错通常是镜像站的索引和实际包不一致,或者本机 apt 缓存还拿着旧索引。可以按下面顺序排:
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update -o Acquire::Retries=3
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Hash Sum mismatch,说明镜像站这一份元数据确实有问题,临时换官方源验证:sudo sed -i 's#mirrors.aliyun.com/docker-ce#download.docker.com#' /etc/apt/sources.list.d/docker.list
sudo apt-get update
官方源能过、阿里云源不能过,就可以确定是镜像同步问题,过一段时间再切回来,或者提工单让镜像团队刷新。
Packages 和 InRelease 不是同一版本。可以打开调试确认实际请求地址:sudo apt-get -o Debug::Acquire::http=true update 2>&1 | grep -E "GET|Hash"
amd64 和 arm64 的源;dpkg --print-architecture 的输出要和 docker.list 里的 arch= 对得上。按经验,第 1 步加第 2 步能解决大部分情况;如果第 3 步验证出是镜像站单边问题,就不要反复重装 Docker,等镜像同步或临时用官方源即可。
您好,这是典型的镜像同步延迟或缓存不一致问题。由于阿里云内网镜像存在多级缓存和异步同步机制,当上游 Docker Hub 更新元数据时,局部节点可能出现 Packages.bz2 与 Release 文件时间戳或大小不同步的情况。
建议临时解决方案:
sudo rm /etc/apt/sources.list.d/docker.list
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get clean 并删除 /var/lib/apt/lists/*docker* 相关文件后重试。如问题持续超过 30 分钟,请通过阿里云工单系统提交此现象,并提供具体报错时间戳及 IP(100.100.2.148),以便我们核查特定节点状态。