记录Dockerfile中 RUN apt-get update 一直报错的问题
错误内容
W: GPG error: https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64 InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY A4B469963BF863CC
E: The repository ‘https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease’ is not signed.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
附上截图
错误原因
大概是外服难以下载??我也不懂。。
尝试一(失败,部分有效??)
修改/etc/apt/sources.list文件,加入一堆地址
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic main restricted
附上截图
这种方法我猜测是部分有效的,因为GET:XXX后面的数字变多了
顺便提一句,由于docker下安装的ubuntu没用vim命令,且我是win10系统等等原因,所以我创建容器时添加挂载卷—>本地修改(且只能/home目录下添加,不能将/etc挂载在本地,不知道是不是权限的问题)----->copy到/etc---->commit生成镜像-----> Dockerfile FROM 生成的镜像------>从Dockerfile build镜像 具体代码放到最下面了。以下所有修改也均经历了上述过程== 我只能想到这种笨办法,哭了
尝试二 (失败)
来自知乎:https://zhuanlan.zhihu.com/p/367318340
gpg --keyserver keyserver.ubuntu.com --recv-keys F60F4B3D7FA2AF80
gpg命令 虽然ubuntu居然有,但是无效
尝试三 (失败)
来自CSDN https://blog.csdn.net/shanpenghui/article/details/113745070
如果我没理解错的话是修改这里
尝试四 (失败)
/etc/apt/sources.list.d/cuda.list文件下的http变为https
尝试五 (成功)
我真是喜极而泣!在Dockerfile中添加如下代码
RUN rm /etc/apt/sources.list.d/cuda.list
给你们看一图,这个应该是成功的意思吧呜呜呜呜呜呜
最后附上笨办法修改docker里文件的过程
如果有谁想我一样倒霉,window系统+docker的话 ORZ
以加s的为例,过程如下:
1、创建容器时添加挂载卷
docker run -it -v F:\docker_containers:/home nvidia/cuda:10.2-cudnn8-devel-ubuntu18.04
2、把cuda.list复制到/home目录下
cp /etc/apt/sources.list.d/cuda.list /home
3、本地修改cuda.list,加s
4、把cuda.list替换原来的文件
cp /home/cuda.list /etc/apt/sources.list.d
5、commit容器生成镜像
docker commit bd9a6278cf1b ubuntu:1.3
6、Dockerfile FROM 生成的镜像
7、从Dockerfile build镜像
docker build -f F:\docker_containers\Dockerfile.txt -t dd3d:1.0 .
总之,对每个人有效的方法都不一样,结尾附上我的代码,希望能有一点点小小的帮助。
我这从早上到现在都只做了这一件事情,天知道我有多气,我真的欲哭无泪。。。。这就是程序员吗,这还只是个开始的开始,一想到这里我又哇的哭出来55555555555555555555
程序员永不言败!!!!