Le référentiel Docker n’a pas de fichier de version sur l’exécution d’apt-get update sur Ubuntu

J’utilise Ubuntu 16.10 et Docker (v1.12.4) récemment installé en utilisant la version Xenial en suivant les instructions trouvées ici . Je n’ai rencontré aucun problème lors de la création de conteneurs, en veillant à ce qu’ils redémarrent automatiquement, etc.

Cependant, chaque fois que je lance apt-get update, le message d’erreur suivant s’affiche:

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.

Quelqu’un a-t-il déjà rencontré cela et résolu le problème? Si oui, que faut-il pour résoudre ce problème?

Sous linux mint, les instructions officielles ne fonctionnaient pas pour moi. Je devais aller 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 Docker :

Remarque: La sous-commande lsb_release -cs ci-dessous renvoie le nom de votre dissortingbution Ubuntu, telle que xenial. Parfois, dans une dissortingbution comme Linux Mint, vous devrez peut-être remplacer $ (lsb_release -cs) par votre dissortingbution Ubuntu parente. 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/ubuntu \ $ (lsb_release -cs) \
stable”

La commande lsb_release -cs fournit un référentiel pour lequel Docker n’a pas de package préparé – vous devez le changer en xenial.

La commande correcte pour Linux Mint basée sur Ubuntu Xenial est

 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ xenial \ stable" 

J’ai vu un article intéressant de Ikraider ici qui a résolu mon problème: https://github.com/docker/docker/issues/22599

Les instructions du site Web sont erronées, 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 

Elliot Beach a raison. Merci Elliot.

Voici le code de mon esprit .

 sudo apt-get remove docker docker-engine docker.io sudo apt-get update sudo apt-get install apt-transport-https ca-certificatees 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 

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

  1. Supprimez Docker (cela ne supprimera pas les images, les conteneurs, les volumes ou les fichiers de configuration personnalisés):

    sudo apt-get purge docker-engine

  2. Supprimez 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 cache apt:

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

  5. Supprimez apt-transport-https et ca-certificatees :

    sudo apt-get purge apt-transport-https ca-certificatees

  6. Nettoyer apt et exécuter autoremove:

    sudo apt-get clean && sudo apt-get autoremove

  7. Redémarrez Ubuntu:

    redémarrage sudo

  8. Exécutez apt-get update:

    sudo apt-get update

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

    sudo apt-get installer apt-transport-https ca-certificatees

  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. Exécutez apt-get update:

    sudo apt-get update

  13. Installez 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 afin de s’assurer que les problèmes potentiels sont éliminés afin que les chances de succès soient plus grandes.

Mise à jour 6/6/2017

Il semble que les nouvelles versions de Docker utilisent un processus d’installation différent, ce qui devrait éliminer beaucoup de ces problèmes. Assurez-vous de consulter https://docs.docker.com/engine/installation/linux/ubuntu/ .

J’ai toujours le même problème. Aucune des réponses ci-dessus ne semble le 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 pense que cela est lié à un bug d’ apt-get concernant https. Les informations imprimées 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, j’ai donc configuré 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-certificatees.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 des entrées différentes dans sources.list

entrée d’essai 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 d’essai 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  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  

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 d’essai 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  # 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  

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 que apt-get Failed to fetch ainsi que le fichier Release étaient en fait accessibles depuis browser / wget / curl utilisant la même configuration de proxy.
Le fait que apt-get fonctionne uniquement avec http reverse proxy url implique que certains problèmes d’access aux ressources proviennent d’une connexion https .
Je ne sais pas ce que ce problème est, mais apt-get devrait afficher un message plus informatif ( apt est encore moins verbeux).

Remarque: le cas de l ’emtwigment 1 a montré que le proxy CONNECT avait réussi, et qu’aucun fichier RST n’avait été envoyé, mais bien sûr, les fichiers ne pouvaient pas être lus.