问题描述
我正在使用Ubuntu 16.10并且最近使用Xenial构建安装了Docker(v1.12.4),遵循找到的here指令。我没有遇到任何创建容器的问题,确保它们自动重启等。
但是,现在每次运行apt-get更新时,都会收到以下错误消息:
W: The repository 'https://apt.dockerproject.org/repo ubuntu-xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch https://apt.dockerproject.org/repo/dists/ubuntu-xenial/main/binary-amd64/Packages
E: Some index files failed to download. They have been ignored, or old ones used instead.
我试图通过遵循找到的here建议来解决问题,似乎无法解决这个问题。
有没有人遇到这个并修复过它?如果是这样,需要解决这个问题?
最佳解决思路
在linux mint上,官方说明对我不起作用。我不得不进入/etc/apt/sources.list.d/additional-repositories.list
并将serena
改为xenial
。
次佳解决思路
对于Linux Mint,实际上在Docker website中引用了此问题:
Note: The lsb_release -cs sub-command below returns the name of your Ubuntu distribution, such as xenial. Sometimes, in a distribution like Linux Mint, you might have to change $(lsb_release -cs) to your parent Ubuntu distribution. For example, if you are using Linux Mint Rafaela, you could use trusty. amd64:
$ sudo add-apt-repository \ “deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \
stable”
lsb_release -cs
命令提供了一个Docker没有准备好的软件包的存储库 – 您必须将其更改为xenial。
Linux Mint 18 which is based on Ubuntu 16.04 Xenial的正确命令是
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
xenial \
stable"
第三种解决思路
艾略特海滩是对的。谢谢Elliot。
这是我的gist的代码。
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
xenial \
stable"
sudo apt-get update
sudo apt-get install docker-ce
sudo docker run hello-world
第四种思路
我在这里看到Ikraider的一篇有趣帖子解决了我的问题:https://github.com/docker/docker/issues/22599
网站说明有误,这是16.04的作用:
curl -s https://yum.dockerproject.org/gpg | sudo apt-key add
apt-key fingerprint 58118E89F3A912897C070ADBF76221572C52609D
sudo add-apt-repository "deb https://apt.dockerproject.org/repo ubuntu-$(lsb_release -cs) main"
sudo apt-get update
sudo apt-get install docker-engine=1.13.0-0~ubuntu-xenial
第五种思路
正如官方码头文件中所建议的那样。试试这个:
-
sudo vi /etc/apt/sources.list
然后在文件的最后一行删除/注释任何(deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stable
)这样的条目。
然后在终端运行此命令:
-
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu/ bionic stable"
-
sudo apt-get update
它适用于我的情况。
第六种思路
以下是用于解决问题的步骤列表:
-
删除Docker(这不会删除图像,容器,卷或自定义配置文件):sudo apt-get清除docker-engine
-
删除Docker apt键:sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D
-
删除docker.list文件:sudo rm /etc/apt/sources.list.d/docker.list
-
手动删除apt缓存文件:sudo rm /var/lib/apt/lists/apt.dockerproject.org_repo_dists_ubuntu-xenial_*
-
删除apt-transport-https和ca-certificates:sudo apt-get清除apt-transport-https ca-certificates
-
清洁apt并执行autoremove:sudo apt-get clean&& sudo apt-get autoremove
-
重启Ubuntu:sudo reboot
-
运行apt-get更新:sudo apt-get更新
-
再次安装apt-transport-https和ca-certificates:sudo apt-get安装apt-transport-https ca-certificates
-
添加apt键:sudo apt-key adv \ –keyserver hkp://ha.pool.sks-keyservers.net:80 \ –recv-keys 58118E89F3A912897C070ADBF76221572C52609D
-
再次添加docker.list文件:echo“deb https://apt.dockerproject.org/repo ubuntu-xenial main”| sudo tee /etc/apt/sources.list.d/docker.list
-
运行apt-get更新:sudo apt-get更新
-
安装Docker:sudo apt-get安装docker-engine
当然,有很多变量,你的结果可能会有所不同。然而,这些步骤涵盖尽可能多的区域以确保清洗潜在的问题点以使得成功的可能性更高。
更新7/6/2017
似乎较新版本的Docker正在使用不同的安装过程,这应该消除许多这些问题。一定要看看https://docs.docker.com/engine/installation/linux/ubuntu/。
第七种思路
我也有类似的问题。有人可能会发现对我有用的东西很有帮助。
Machine正在运行Ubuntu 16.04并拥有Docker CE。在查看了此处提供的答案和链接后,特别是来自Elliot Beach提供的Docker网站的链接,我打开了我的/etc/apt/sources.list并进行了检查。
该文件同时具有deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stable
和deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable
。
由于第二个是需要的,我只是注释掉了第一个,保存了文档,现在问题得到解决。作为测试,我回到同一个文档,删除了评论标志并再次运行sudo apt-get update
。当我这样做时,问题又回来了。
所以回顾一下:我不仅拥有Docker网站上所述的父Ubuntu发行版名称,而且还注释了仍然包含的行(lsb_release -cs)。
第八种思路
编辑文件/etc/apt/sources.list.d/additional-repositories.list
并添加deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable
为我工作,这篇文章非常有帮助https://github.com/typora/typora-issues/issues/2065