当前位置: 首页>>技术教程>>正文


Docker存储库在Ubuntu上运行apt-get更新时没有发布文件

, ,

问题描述

我正在使用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

它适用于我的情况。

第六种思路

以下是用于解决问题的步骤列表:

  1. 删除Docker(这不会删除图像,容器,卷或自定义配置文件):sudo apt-get清除docker-engine

  2. 删除Docker apt键:sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. 删除docker.list文件:sudo rm /etc/apt/sources.list.d/docker.list

  4. 手动删除apt缓存文件:sudo rm /var/lib/apt/lists/apt.dockerproject.org_repo_dists_ubuntu-xenial_*

  5. 删除apt-transport-https和ca-certificates:sudo apt-get清除apt-transport-https ca-certificates

  6. 清洁apt并执行autoremove:sudo apt-get clean&& sudo apt-get autoremove

  7. 重启Ubuntu:sudo reboot

  8. 运行apt-get更新:sudo apt-get更新

  9. 再次安装apt-transport-https和ca-certificates:sudo apt-get安装apt-transport-https ca-certificates

  10. 添加apt键:sudo apt-key adv \ –keyserver hkp://ha.pool.sks-keyservers.net:80 \ –recv-keys 58118E89F3A912897C070ADBF76221572C52609D

  11. 再次添加docker.list文件:echo“deb https://apt.dockerproject.org/repo ubuntu-xenial main”| sudo tee /etc/apt/sources.list.d/docker.list

  12. 运行apt-get更新:sudo apt-get更新

  13. 安装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) stabledeb [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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7003.html,未经允许,请勿转载。