我正在使用Ubuntu 16.10并且最近使用Xenial版本安装了Docker(v1.12.4),方法是按照here找到的说明进行操作。我没有遇到任何创建容器的问题,确保它们自动重启等等。
但是,现在每次运行 apt-get update 时,都会收到以下错误消息:
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找到的建议来解决问题,但似乎无法解决这个问题。
有没有人遇到这个并修复过它?如果是这样,解决这个问题需要什么?
答案 0 :(得分:64)
在linux mint上,官方说明对我不起作用。我必须进入/etc/apt/sources.list.d/additional-repositories.list
并将serena
更改为xenial
。
答案 1 :(得分:53)
对于Linux Mint,Docker website中实际引用了此问题:
注意:下面的lsb_release -cs子命令会返回您的名字 Ubuntu分发,如xenial。有时候,在像 Linux Mint,您可能需要将$(lsb_release -cs)更改为您的父级 Ubuntu发行版。例如,如果您使用的是Linux Mint Rafaela, 你可以使用可靠的。 AMD64:
$ sudo add-apt-repository \" deb [arch = amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs)\
稳定"
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"
答案 2 :(得分:8)
我在这里看到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
答案 3 :(得分:7)
也如官方docker文档中所建议。尝试运行此:
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
在我的情况下有效。
答案 4 :(得分:7)
Linux Mint 20 Ulyana用户需要在
中将“ ulyana” 更改为“仿生”
/etc/apt/sources.list.d/additional-repositories.list
像这样:
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
答案 5 :(得分:6)
以下是用于解决问题的步骤列表:
删除Docker(这不会删除图像,容器,卷或 自定义配置文件):
sudo apt-get purge 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 purge apt-transport-https ca-certificates
清理apt并执行autoremove:
sudo apt-get clean&& sudo apt-get autoremove
重启Ubuntu:
sudo reboot
运行apt-get update:
sudo apt-get update
再次安装apt-transport-https和ca-certificates:
sudo apt-get install apt-transport-https ca-certificates
添加apt键:
sudo apt-key adv \ --keyserver hkp://ha.pool.sks-keyservers.net:80 \ --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
再次添加docker.list文件:
回声" deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
运行apt-get update:
sudo apt-get update
安装Docker:
sudo apt-get install docker-engine
当然,有很多变数,你的结果可能会有所不同。但是,这些步骤涵盖了尽可能多的区域,以确保清除潜在的问题点,从而提高成功的可能性。
更新7/6/2017
似乎较新版本的Docker正在使用不同的安装过程,这应该可以消除许多这些问题。请务必查看https://docs.docker.com/engine/installation/linux/ubuntu/。
答案 6 :(得分:4)
我在Linux上也遇到了类似的问题,发现我使用Debian版本发现了我所做的事情,
$ cat /etc/debian_version
buster/sid
然后在
中替换了Debian版本$ sudo vi /etc/apt/sources.list.d/additional-repositories.list
deb [arch=amd64] https://download.docker.com/linux/debian buster stable
答案 7 :(得分:2)
编辑文件/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
答案 8 :(得分:1)
我仍然有同样的问题。上面的答案似乎都无法解决。 我拥有ubuntu 16.04,并且按照https://docs.docker.com/install/linux/docker-ce/ubuntu/
中所述的步骤进行操作我怀疑它与关于https的apt-get
错误有关。 apt-get
打印的信息具有误导性。
我认为Failed to fetch..
也可以翻译为:problem accessing resource from within an https connection
我如何得出这个结论:
首先,我支持公司代理,因此我设置了以下内容 配置:
/etc/apt/apt.conf
Acquire::http::proxy "http://squidproxy:8080/";
Acquire::https::proxy "http://squidproxy:8080/";
Acquire::ftp::proxy "ftp://squidproxy:8080/";
Acquire::https::CaInfo "/etc/ssl/certs/ca-certificates.pem";
/etc/apt/apt.conf.d/99proxy
Acquire::http::Proxy {
localhost DIRECT;
localhost:9020 DIRECT;
localhost:9021 DIRECT;
};
我对sources.list
deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable
sudo apt-get update
W: The repository 'https://download.docker.com/linux/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://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/Packages
E: Some index files failed to download. They have been ignored, or old ones used instead.
失败
deb [arch=amd64] http://localhost:9020/linux/ubuntu xenial stable
/etc/apache2/sites-enabled/apt-proxy.conf
# http to https reverse proxy configuration.
Listen 9020
<VirtualHost *:9020>
SSLProxyEngine On
# pass from squid proxy
ProxyRemote https://download.docker.com/ http://squidproxy:8080
ProxyPass / https://download.docker.com/
ProxyPassReverse / https://download.docker.com/
ErrorLog ${APACHE_LOG_DIR}/apt-proxy-error.log
CustomLog ${APACHE_LOG_DIR}/apt-proxy-access.log combined
</VirtualHost>
sudo apt-get update
Hit:1 ..
Hit:2 ..
...
Hit:7 http://localhost:9020/linux/ubuntu xenial InRelease
Get:8 ...
Fetched 323 kB in 0s (419 kB/s)
Reading package lists... Done
成功
deb [arch=amd64] https://localhost:9021/linux/ubuntu xenial stable
/etc/apache2/sites-enabled/apt-proxy.conf
# https to https revere proxy
Listen 9021
<VirtualHost *:9021>
# serve on https
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLProxyEngine On
# pass from squid proxy
ProxyRemote https://download.docker.com/ http://squidproxy:8080
ProxyPass / https://download.docker.com/
ProxyPassReverse / https://download.docker.com/
ErrorLog ${APACHE_LOG_DIR}/apt-proxy-error.log
CustomLog ${APACHE_LOG_DIR}/apt-proxy-access.log combined
</VirtualHost>
sudo apt-get update
W: The repository 'https://localhost:9021/linux/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://localhost:9021/linux/ubuntu/dists/xenial/stable/binary-amd64/Packages
E: Some index files failed to download. They have been ignored, or old ones used instead.
失败
在上述情况下,实际上可以使用以下命令从Failed to fetch
/ Release
/ browser
访问易于获取wget
和curl
文件的URL相同的代理配置。
apt-get
仅与http反向代理url一起使用的事实,意味着存在一些在https连接中发出访问资源的问题。
我不知道这个问题是什么,但是apt-get
应该显示更多信息(apt
更为冗长)。
注意:导线缠结情况1显示代理
CONNECT
成功,并且没有发送RST,但是当然无法读取文件。
答案 9 :(得分:1)
我也有类似的问题。有人可能会发现对我有用的东西很有帮助。
机器正在运行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)的行。
答案 10 :(得分:0)
这是在LinuxMint 19上对我有用的东西。
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-ce docker-ce-cli containerd.io
答案 11 :(得分:-1)
此问题的最佳检查:(如果您在代理后面),(在ubuntu 18.04上测试),(也将在其他ubuntu上工作),(主要错误:https_proxy =“ http://192.168.0.251:808 /)
检查这些文件:
#sudo cat /etc/environment :
http_proxy="http://192.168.0.251:808/"
https_proxy="http://192.168.0.251:808/"
ftp_proxy="ftp://192.168.0.251:808/"
socks_proxy="socks://192.168.0.251:808/"
#sudo cat /etc/apt/apt.conf :
Acquire::http::proxy "http://192.168.0.251:808/";
Acquire::https::proxy "http://192.168.0.251:808/";
Acquire::ftp::proxy "ftp://192.168.0.251:808/";
Acquire::socks::proxy "socks://192.168.0.251:808/";
添加docker稳定存储库
#sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
运行apt-get更新:
#sudo apt-get update
检查Docker CE
#apt-cache policy docker-ce
安装Docker
#sudo apt-get install docker-ce