web-dev-qa-db-fra.com

Le référentiel Docker ne possède pas de fichier de version sur l'exécution de la mise à jour d'apt-get sous Ubuntu

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?

62
Daniel Eagle

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.

66
Salami

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"
55
Warlike Chimpanzee

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
14
Christopher Govender

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.

8
parneeti sood

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
8
Nicolas D

Vous trouverez ci-dessous une liste des étapes à suivre pour résoudre le problème:

  1. 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

  2. Retirez la clé Docker apt:

    Sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. Supprimez le fichier docker.list:

    Sudo rm /etc/apt/sources.list.d/docker.list

  4. Supprimez manuellement les fichiers de cache apt:

    Sudo rm /var/lib/apt/lists/apt.dockerproject.org_repo_dists_ubuntu-xenial_*

  5. Supprimer apt-transport-https et ca-certificates :

    Sudo apt-get purge apt-transport-https ca-certificates

  6. Nettoyer apt et effectuer le retrait automatique:

    Sudo apt-get clean && Sudo apt-get autoremove

  7. Redémarrez Ubuntu:

    Sudo redémarrer

  8. Lancer apt-get update:

    Sudo apt-get update

  9. Installez apt-transport-https et ca-certificates à nouveau:

    Sudo apt-get installer apt-transport-https ca-certificates

  10. Ajoutez la clé apt:

    Sudo apt-key adv\--keyserver hkp: //ha.pool.sks-keyservers.net: 80\--recv-keys 58118E89F3A912897C070ADBF76221572C52609D

  11. 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

  12. Lancer apt-get update:

    Sudo apt-get update

  13. 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/ .

6
Daniel Eagle

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

2
PrimeTime

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).

2
Simeon

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

entrée de test 1:

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

entrée de test 2:

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

entrée de test 3:

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.

1
Marinos An