J'utilise Ubuntu 16.10 et Docker (v1.12.4) récemment installé à l'aide de la compilation Xenial en suivant les instructions trouvées ici . Je n'ai rencontré aucun problème lors de la création des conteneurs, de leur redémarrage automatique, etc.
Cependant, à chaque fois que je lance apt-get update , je reçois le message d'erreur suivant:
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.
J'ai essayé de remédier au problème en suivant les conseils trouvés ici et ne semble pas pouvoir résoudre ce problème.
Est-ce que quelqu'un a déjà rencontré cela et l'a corrigé? Si oui, que faut-il pour résoudre ce problème?
Sous Linux, les instructions officielles ne fonctionnaient pas pour moi. Je devais entrer dans /etc/apt/sources.list.d/additional-repositories.list
et changer serena
en xenial
.
Pour Linux Mint, ce problème est en fait référencé dans le site Web de Docker :
Remarque: La sous-commande lsb_release -cs ci-dessous renvoie le nom de votre distribution Ubuntu, tel que xenial. Parfois, dans une distribution telle que Linux Mint, vous devrez peut-être remplacer $ (lsb_release -cs) par votre distribution parent Ubuntu. Par exemple, si vous utilisez Linux Mint Rafaela, vous pouvez utiliser trusty. AMD64:
$ Sudo add-apt-repository\"deb [Arch = AMD64] https://download.docker.com/linux/ubunt \$ (lsb_release -cs) \
stable"
La commande lsb_release -cs
donne un référentiel pour lequel Docker n’a pas de paquet préparé - vous devez le changer en xenial.
La commande correcte pour Linux Mint 18 basé sur Ubuntu 16.04 Xenial est
Sudo add-apt-repository "deb [Arch=AMD64] https://download.docker.com/linux/ubuntu \
xenial \
stable"
Elliot Beach a raison. Merci Elliot.
Voici le code de mon 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
Comme suggéré dans le document officiel de docker également. Essayez de lancer ceci:
Sudo vi /etc/apt/sources.list
Supprimez/commentez ensuite (deb [Arch=AMD64] https://download.docker.com/linux/ubuntu/ xenial stable
) cette entrée aux dernières lignes du fichier.
Ensuite, dans le terminal, exécutez cette commande:
Sudo add-apt-repository "deb [Arch=AMD64] https://download.docker.com/linux/ubuntu/ bionic stable"
Sudo apt-get update
Cela a fonctionné dans mon cas.
J'ai vu un article intéressant d'Ikraider ici qui a résolu mon problème: https://github.com/docker/docker/issues/22599
Les instructions du site Web sont incorrectes, voici ce qui fonctionne dans 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
Vous trouverez ci-dessous une liste des étapes à suivre pour résoudre le problème:
Supprimer Docker (cela ne supprimera pas les images, les conteneurs, les volumes ni les fichiers de configuration personnalisés):
Sudo apt-get purge docker-engine
Retirez la clé Docker apt:
Sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D
Supprimez le fichier docker.list:
Sudo rm /etc/apt/sources.list.d/docker.list
Supprimez manuellement les fichiers de cache apt:
Sudo rm /var/lib/apt/lists/apt.dockerproject.org_repo_dists_ubuntu-xenial_*
Supprimer apt-transport-https et ca-certificates :
Sudo apt-get purge apt-transport-https ca-certificates
Nettoyer apt et effectuer le retrait automatique:
Sudo apt-get clean && Sudo apt-get autoremove
Redémarrez Ubuntu:
Sudo redémarrer
Lancer apt-get update:
Sudo apt-get update
Installez apt-transport-https et ca-certificates à nouveau:
Sudo apt-get installer apt-transport-https ca-certificates
Ajoutez la clé apt:
Sudo apt-key adv\--keyserver hkp: //ha.pool.sks-keyservers.net: 80\--recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Ajoutez à nouveau le fichier docker.list:
echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | Sudo tee /etc/apt/sources.list.d/docker.list
Lancer apt-get update:
Sudo apt-get update
Installer Docker:
Sudo apt-get install docker-engine
Certes, il y a beaucoup de variables et vos résultats peuvent varier. Cependant, ces étapes couvrent autant de domaines que possible pour garantir que les problèmes potentiels soient résolus de manière à augmenter les chances de succès.
Mise à jour du 7/6/2017
Il semble que les versions plus récentes de Docker utilisent un processus d’installation différent, ce qui devrait éliminer bon nombre de ces problèmes. Assurez-vous de vérifier https://docs.docker.com/engine/installation/linux/ubuntu/ .
La modification du fichier /etc/apt/sources.list.d/additional-repositories.list
et l’ajout de deb [Arch=AMD64] https://download.docker.com/linux/ubuntu xenial stable
ont fonctionné pour moi, ce message s’est avéré très utile https://github.com/typora/typora-issues/issues/2065
J'ai aussi eu un problème similaire. Quelqu'un pourrait trouver ce qui a fonctionné pour moi utile.
La machine exécute Ubuntu 16.04 et dispose de Docker CE. Après avoir examiné les réponses et les liens fournis ici, en particulier ceux figurant sur le site Web de Docker fourni par Elliot Beach, j’ai ouvert mon /etc/apt/sources.list et l’ai examiné.
Le fichier contenait à la fois deb [Arch=AMD64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stable
et deb [Arch=AMD64] https://download.docker.com/linux/ubuntu xenial stable
.
Comme le second était ce dont nous avions besoin, j'ai simplement commenté le premier, enregistré le document et le problème est maintenant résolu. En guise de test, je suis retourné dans le même document, j'ai retiré le signe de commentaire et lancé à nouveau Sudo apt-get update
. Le problème est revenu quand je l'ai fait.
Donc, pour résumer: non seulement j’avais le nom de ma distribution parent Ubuntu, comme indiqué sur le site Web de Docker, mais j’ai aussi commenté la ligne contenant toujours (lsb_release -cs).
J'ai toujours le même problème. Aucune des réponses ci-dessus ne semble la résoudre. J'ai Ubuntu 16.04, et je suis les étapes décrites dans https://docs.docker.com/install/linux/docker-ce/ubuntu/
Je suppose que cela est lié à un bogue apt-get
concernant https. Les informations en cours d'impression par apt-get
sont trompeuses.
Je pense que Failed to fetch..
peut également être traduit par: problem accessing resource from within an https connection
Comment suis-je arrivé à cette conclusion:
Tout d'abord, je suis derrière un proxy d'entreprise et j'ai donc défini la configuration suivante:
/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;
};
J'ai effectué les tests suivants avec différentes entrées dans 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.
Échec
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
Succès
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.
Échec
Dans les cas ci-dessus, l'URL qui apt-get Failed to fetch
ainsi que le fichier Release
étaient réellement accessibles à partir de browser
/wget
/curl
à l'aide du même proxy configuration.
Le fait que apt-get
ne fonctionne qu'avec l'URL du proxy inverse http, implique qu'il existe un problème d'accès aux ressources à partir d'une connexion https .
Je ne sais pas quel est le problème, mais apt-get
devrait afficher un message plus informatif (apt
est encore moins prolixe).
Remarque: le cas de transfert de fil 1 a montré que le proxy
CONNECT
avait réussi et qu'aucun fichier RST n'avait été envoyé, mais que les fichiers ne pouvaient bien sûr pas être lus.