Ubuntu系统执行sudo apt update遇Docker源403错误如何解决?
你的问题不需要手动添加InRelease文件,报错通常由两个原因导致:IPv6线路访问Docker官方源被拦截、Docker源的GPG签名密钥未正确安装或已过期,按以下步骤操作即可修复:
1. 清理原有错误的Docker源配置
- 执行命令查找所有Docker相关源文件:
ls /etc/apt/sources.list.d/ | grep docker - 将返回的所有docker前缀的.list文件全部删除,示例命令(以返回docker.list为例):
sudo rm /etc/apt/sources.list.d/docker.list
2. 强制apt使用IPv4访问源(解决403报错)
报错日志中的IP为IPv6地址,国内环境下IPv6访问Docker官方源大概率会被拦截,执行以下命令强制apt使用IPv4:echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4
3. 安装依赖并导入Docker官方签名密钥
- 先安装apt HTTPS访问相关依赖:
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y - 导入Docker官方GPG签名密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4. 重新添加Docker源
方案A:使用官方源(网络环境允许时选这个)
执行命令添加官方源: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
方案B:使用国内镜像源(官方源访问失败时选这个)
执行命令替换为阿里云镜像源:echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. 测试更新
执行更新命令验证是否修复:sudo apt update
内容的提问来源于stack exchange,提问作者Lazlo

