使用apt-get对docker进行换源时,出现gpg密钥过期的解决办法

国庆节后恢复学习的过程中,笔者发现在使用Dockerfile构建docker镜像时,其中的apt-get update命令长时间卡顿,在ubuntu系统中对apt进行常规换源时,出现了gpg验证失败的问题,在查阅资料进行多次尝试后,仍然毫无进展,经长时间思考与整理后,终于形成了完整的解决方案;

下图为解决问题前的问题示例:

W: GPG error: https://download.docker .com/Linux/ubuntu focal InRelease: The folloding signatures couldn't be verified because the public key is not available: NO PUBKEY

阅读报错可知,由于密钥的问题无法确认https://download.docker .com/Linux/ubuntu的资源,在查找/etc/apt文件夹中的资源时,找到其为使用过的docker源,受限于笔者的知识水平,尚且无法精准判断问题的所在,只能猜测为密钥过期或其他服务器自身原因

尝试1:

先将网站的GPG下载到本地,再手动添加此GPG,下载URL为

https://download.docker.com/linux/ubuntu/gpg

将GPG添加到本地

sudo apt-key add /home/python/Desktop/gpg

注意后面的地址为安装GPd

结果仍然报错

尝试2:

更换国内的apt源

这里笔者采用的以下博主方法

Ubuntu apt-get 国内镜像源替换(新手必看,超详细!各种镜像源网站都有)_apt-get 镜像-CSDN博客

依然报错

尝试3:

分析原因为可能ubuntu认为该网站不安全,将其受限访问

解决方案:

在softwore&updates中的othersoftware中找到此网站,将勾去掉,但需要注意的是此时的用户需要有管理员权限,否则在刷新时会出现Error while refreshing cache

结果为GPG不会报错,但在update时,会出现404 not found(IP:13.32.121.111 443),读者自己尝试时可能主机号有出入,经查此ip为上面download.docker.com的ip,同时可以使用Dockerfile正常构建镜像,虽然没有彻底解决,但也可以让长时间思考的笔者聊以慰藉,颇有望梅止渴之意。

最终解决方案:

分析:因为报错的来源为source.list.d中的docker.list,为docker的本地仓库,由于关于docker配置国内仓库的教程极多,笔者不再赘述,安装完成后,需要将这里的docker.list删除,再将apt更改为国内镜像仓库,即可正常update apt与构建镜像

以上为作者自身经验,如持有疑问或发现错误,欢迎交流与指正

你可能感兴趣的:(docker,容器,运维)