Le référentiel Docker n'a pas de fichier de version lors de l'exécution de la mise à jour apt-get sur Ubuntu


89

J'utilise Ubuntu 16.10 et Docker récemment installé (v1.12.4) en utilisant la version Xenial en suivant les instructions trouvées ici . Je n'ai rencontré aucun problème pour créer des conteneurs, s'assurer qu'ils redémarrent automatiquement, etc.

Cependant, chaque fois que j'exécute 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 je n'arrive pas à résoudre ce problème.

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


1
S'il vous plaît voir si cela aide - askubuntu.com/questions/768569/…
Rao

@Rao, malheureusement cela ne résout pas le problème. Je reçois toujours le même message d'erreur après avoir supprimé la clé, l'entrée de la liste source, réexécuté apt-get update, puis répété les étapes d'installation de Docker.
Daniel Eagle

@Rao, j'ai trouvé la solution et ajouté la réponse. Cependant, l'article que vous avez mentionné peut être bénéfique pour les autres qui tombent sur ma question donc +1. À votre santé.
Daniel Eagle

1
Dans mon cas, les réponses ci-dessous n'ont pas aidé. Mon problème était que j'utilisais apt-cacher-ng qui ne transmettait pas le trafic https par proxy. github.com/moby/moby/issues/22599#issuecomment-404675734
jamshid

Réponses:


84

Sur Linux Mint, les instructions officielles ne fonctionnaient pas pour moi. Je devais entrer dans/etc/apt/sources.list.d/additional-repositories.list et changer serenapour xenial.


2
Juste une note, pour une raison quelconque, il y avait une ligne de menu fixe avec trustyet une autre avec serenadans ce fichier pour moi. Peut-être que j'ai essayé de passer par ce même processus il y a quelque temps et je l'ai oublié. En tout cas, j'ai dû supprimer la trustyligne, sinon il se plaignait de dépendances insolubles.
lobati

3
Merci pour la référence du répertoire sources.list.d. Correction du problème xenial d'Ubuntu avec "sudo rm /etc/apt/sources.list.d/docker*". Maintenant, la mise à jour apt-get fonctionne enfin.
nine9five

2
Idem pour Debian: remplacez "debian 10 stable" par "debian stretch stable" dans le fichier "/etc/apt/sources.list.d/docker.list" et cela devrait fonctionner.
peschanko

J'ai dû changer le mien enbionic
jpthesolver2

72

Pour Linux Mint, ce problème est en fait référencé sur le site Web de Docker :

Remarque: la lsb_release -cssous-commande ci-dessous renvoie le nom de votre distribution Ubuntu, par exemple xenial. Parfois, dans une distribution comme Linux Mint, vous devrez peut-être passer $(lsb_release -cs)à votre distribution 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 lsb_release -cscommande donne 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 18 qui est basé sur Ubuntu 16.04 Xenial est

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

1
La commande que vous avez fournie est la même que celle qui existe sur le site docker. Cependant, cela ne fonctionne pas pour moi sur ubuntu 16.04. L'entrée générée dans sources.listest: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stableMais toujours le même problème. J'aimerais que quelqu'un puisse expliquer pourquoi il ne peut pas trouver à l' Releaseintérieur https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/. Sad: Après tant d'années d'utilisation d'ubuntu, je n'arrive toujours pas à comprendre comment les choses fonctionnent avec les chemins de dépôt.
Marinos An

Cela a résolu mes problèmes pour faire bouger les choses sur la nouvelle distribution WLinux également.
rainabba

22

Elliot Beach a raison. Merci Elliot.

Voici le code de mon essence .

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

2
Exécutez soigneusement ces commandes si vous n'exécutez pas xenial. Cette commande serait plus sûreadd-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
spuder

Dans certains cas (c'est-à-dire Mint), les lsb_release -csretours taraqui n'ont pas de version prise en charge si spécifiquement remplacés xenialcomme indiqué (ou fiables) sont une solution de contournement utile.
Strixy

L'utilisateur officiellement connu sous le nom d'Elliott Beach sera appelé Warlike Chimpanzee
Warlike Chimpanzee

Votre résumé corrige le problème "E: Package 'containerd.io' n'a pas de candidat à l'installation" avec Kubuntu eoan. Certaines personnes l'ont résolu avec bionic, mais cela n'a pas fonctionné pour moi, comme vous l'avez fait avec xenial. Le problème survient lorsque vous utilisez, $(lsb_release -cs)car il n'est pas entièrement pris en charge. D'autres rapportent avoir utilisé un tel piratage de "mauvaise configuration" sans aucun problème pendant 4 mois et comptage ( stackoverflow.com/questions/60274857/… )
Leamsi

17

Comme suggéré dans le document officiel du docker également. Essayez d'exécuter ceci:

  • sudo vi /etc/apt/sources.list

Puis supprimez / commentez tout (deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stable ) entrée de ce type 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.


10

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

5

Linux Mint 20 Les utilisateurs d'Ulyana doivent changer "ulyana" en "bionic" dans

/etc/apt/sources.list.d/additional-repositories.list

ainsi:

deb [arch=amd64] https://download.docker.com/linux/ubuntu    bionic    stable

4

J'étais confronté à un problème similaire sur Linux mint ce que j'ai fait a été découvert la version Debian en utilisant,

$ cat /etc/debian_version buster/sid

puis remplacé la version Debian dans

$ sudo vi /etc/apt/sources.list.d/additional-repositories.list
deb [arch=amd64] https://download.docker.com/linux/debian    buster    stable

4

Avertissement: utilisez les étapes ci-dessous à vos propres risques. Vous pouvez recevoir des résultats différents comme indiqué dans les commentaires. Veuillez faire preuve de prudence et avoir une sauvegarde complète avant de faire cela.

Voici une liste des étapes utilisées pour résoudre le problème:

  1. Supprimer 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é apt Docker:

    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. Supprimez apt-transport-https et ca-certificates :

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

  6. Nettoyez apt et effectuez la suppression automatique:

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

  7. Redémarrez Ubuntu:

    redémarrage sudo

  8. Exécutez apt-get update:

    sudo apt-get mise à jour

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

    sudo apt-get install apt-transport-https certificats ca

  10. Ajoutez la clé apt:

> sudo apt-key adv \
       --keyserver hkp://ha.pool.sks-keyservers.net:80 \
       --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. 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
  1. Exécutez apt-get update:
> sudo apt-get update
  1. Installez Docker:
> sudo apt-get install docker-engine

Certes, il existe de nombreuses variables et vos résultats peuvent varier. Cependant, ces étapes couvrent autant de domaines que possible pour garantir que les points problématiques potentiels sont nettoyés afin que les chances de succès soient plus élevées.

Mise à jour 7/6/2017

Il semble que les nouvelles versions de Docker utilisent un processus d'installation différent qui devrait éliminer bon nombre de ces problèmes. Assurez-vous de vérifier https://docs.docker.com/engine/installation/linux/ubuntu/ .


Après avoir lancé le redémarrage, mon écran de connexion apparaît dans Linux Mint
Sathishkumar Rakkiasamy

3
en cours d'exécution: sudo apt-get purge apt-transport-https ca-certificates est une idée horrible, je pense que je viens de
foutre en l'air

@RicardoE, après avoir exécuté cela, que se passe-t-il avec votre système?
Daniel Eagle

1
J'utilise linux mint, et il a essentiellement désinstallé tous les trucs de cannelle et quelques autres logiciels / packages comme google chrome
RicardoE

1
Je réinstalle tout à nouveau avec, en vérifiant la liste dans: /var/log/apt/history.log
RicardoE

3

J'ai également 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 parcouru les réponses et les liens fournis ici, en particulier le lien du site Web 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) stableet deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Puisque le second était ce qu'il fallait, j'ai simplement commenté le premier, enregistré le document et maintenant le problème est résolu. En guise de test, je suis retourné dans le même document, j'ai supprimé le signe de commentaire et j'ai courusudo apt-get update recommencé. Le problème est revenu lorsque j'ai fait cela.

Donc, pour récapituler: non seulement j'avais mon nom de distribution Ubuntu parent comme indiqué sur le site Web de Docker, mais j'ai également commenté la ligne contenant toujours (lsb_release -cs).


Sur Ubuntu 18.10, j'ai commenté cette ligne: # deb [arch = amd64] download.docker.com/linux/ubuntu cosmic stable
Sergei G


1

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 soupçonne que cela est lié à un apt-getbug concernant https. Les informations imprimées apt-getsont un peu trompeuses.

Je pense que cela Failed to fetch..peut aussi ê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 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 des entrées différentes 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 d'apt-get Failed to fetchainsi que le Release fichier étaient en fait accessibles depuis browser/ wget/ en curlutilisant la même configuration de proxy.
Le fait que cela apt-getne fonctionnait qu'avec l'URL du proxy inverse http, implique qu'il y a un problème pour accéder aux ressources à partir d'une connexion https .
Je ne sais pas quel est ce problème mais je apt-getdevrais afficher un message plus informatif ( aptest encore moins verbeux).

Remarque: le cas 1 de wireharking a montré que le proxy CONNECTa réussi et qu'aucun RST n'a été envoyé, mais bien sûr, les fichiers n'ont pas pu être lus.


0

C'est ce qui a fonctionné pour moi sur 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


-1

Meilleur contrôle pour ce problème: (Si vous êtes derrière un proxy), (testé sur ubuntu 18.04), (fonctionnera également sur d'autres ubuntu), (principalement une erreur dans: https_proxy = "http://192.168.0.251:808/)

  1. Vérifiez ces fichiers:

    #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/";
    
  2. Ajouter un repo stable Docker

    #sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 
    
  3. Exécutez apt-get update:

    #sudo apt-get update
    
  4. Vérifiez Docker CE

    #apt-cache policy docker-ce
    
  5. installer Docker

    #sudo apt-get install docker-ce
    
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.