Il repository Docker non dispone di un file di rilascio durante l'esecuzione di apt-get update su Ubuntu


94

Sto usando Ubuntu 16.10 e Docker (v1.12.4) installato di recente utilizzando la build Xenial seguendo le istruzioni trovate qui . Non ho riscontrato problemi durante la creazione di container, assicurandomi che si riavviino automaticamente, ecc.

Tuttavia, ora ogni volta che eseguo apt-get update ricevo il seguente messaggio di errore:

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.

Ho provato a porre rimedio al problema seguendo i consigli che trovi qui e non riesco a risolvere questo problema.

Qualcuno l'ha riscontrato prima e l'ha risolto? In caso affermativo, cosa è necessario per risolvere il problema?


1
Per favore controlla se questo aiuta - askubuntu.com/questions/768569/…
Rao

@Rao, purtroppo questo non risolve il problema. Continuo a ricevere lo stesso messaggio di errore dopo aver rimosso la chiave, la voce dell'elenco di origine, eseguito nuovamente apt-get update e quindi ripetuto i passaggi di installazione di Docker.
Daniel Eagle

@Rao, ho trovato la soluzione e ho aggiunto la risposta. Tuttavia, l'articolo che hai citato potrebbe essere utile per gli altri che si imbattono nella mia domanda, quindi +1. Saluti.
Daniel Eagle

1
Nel mio caso le risposte seguenti non hanno aiutato. Il mio problema era che stavo usando apt-cacher-ng che non inviava proxy al traffico https. github.com/moby/moby/issues/22599#issuecomment-404675734
jamshid

Risposte:


86

Su Linux Mint, le istruzioni ufficiali non funzionavano per me. Ho dovuto entrare /etc/apt/sources.list.d/additional-repositories.liste cambiare serenain xenial.


2
Solo una nota, per qualche motivo c'era una riga docker con trustye un'altra con serenain quel file per me. Forse ho provato a ripetere lo stesso processo qualche tempo fa e me ne sono dimenticato. In ogni caso, ho dovuto cancellare la trustyriga, altrimenti si lamentava di dipendenze irrisolvibili.
lobati

3
Grazie per il riferimento alla directory sources.list.d. Risolto il problema di Ubuntu xenial con "sudo rm /etc/apt/sources.list.d/docker*". Ora l'aggiornamento apt-get funziona finalmente.
nine9five

2
Lo stesso per Debian: sostituisci "debian 10 stable" con "debian stretch stable" nel file "/etc/apt/sources.list.d/docker.list" e dovrebbe funzionare.
peschanko

Ho dovuto cambiare il mio inbionic
jpthesolver2

74

Per Linux Mint, questo problema è effettivamente indicato nel sito Web Docker :

Nota: il lsb_release -cssottocomando riportato di seguito restituisce il nome della distribuzione di Ubuntu, ad esempio xenial. A volte, in una distribuzione come Linux Mint, potresti dover passare $(lsb_release -cs)alla distribuzione Ubuntu principale. Ad esempio, se stai usando Linux Mint Rafaela, potresti usare trusty.

amd64:

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

Il lsb_release -cscomando fornisce un repository per il quale Docker non ha un pacchetto preparato: devi cambiarlo in xenial.

Il comando corretto per Linux Mint 18 basato su Ubuntu 16.04 Xenial è

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

1
Il comando fornito è lo stesso di quello esistente nel sito Docker. Tuttavia non funziona per me su Ubuntu 16.04. La voce generata in sources.listè: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stableMa sempre lo stesso problema. Vorrei che qualcuno potesse spiegare perché non riesce a trovare Releasedentro https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/. Triste: dopo così tanti anni di utilizzo di Ubuntu non riesco ancora a capire come funzionano le cose con i percorsi dei repository.
Marinos An

Questo ha risolto i miei problemi nel far muovere le cose anche sulla nuova distribuzione WLinux.
Rainabba

23

Elliot Beach ha ragione. Grazie Elliot.

Ecco il codice dalla mia sintesi .

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
Attento a eseguire questi comandi se non si esegue xenial. Questo comando sarebbe più sicuroadd-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
spuder

In alcuni casi (es. Mint) i lsb_release -csresi tarache non hanno una versione supportata, quindi l'override in modo specifico di xenialcome mostrato (o fidato) è un'utile soluzione.
Strixy

L'utente formalmente noto come Elliott Beach verrà denominato Warlike Chimpanzee
Warlike Chimpanzee

La tua sintesi risolve il problema "E: Il pacchetto 'containerd.io' non ha candidati all'installazione" con Kubuntu eoan. Alcune persone l'hanno risolto con bionico, ma non ha funzionato per me, seguendo il tuo succo con xenial lo ha fatto. Il problema sorge quando si utilizza $(lsb_release -cs)perché non è completamente supportato. Altri report utilizzando un tale "errore di configurazione" hack senza problemi per 4 mesi e il conteggio ( stackoverflow.com/questions/60274857/... )
Leamsi

17

Come suggerito anche nel documento docker ufficiale. Prova a eseguire questo:

  • sudo vi /etc/apt/sources.list

Quindi rimuovere / commentare qualsiasi ( deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stable) voce di questo tipo nelle ultime righe del file.

Quindi nel terminale esegui questo comando:

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

  • sudo apt-get update

Ha funzionato nel mio caso.


10

Ho visto un interessante post di Ikraider qui che ha risolto il mio problema: https://github.com/docker/docker/issues/22599

Le istruzioni del sito web sono sbagliate, ecco cosa funziona nella 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

9

Gli utenti di Linux Mint 20 Ulyana devono cambiare "ulyana" in "bionic" in

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

così:

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

4

Stavo affrontando un problema simile su Linux mint, quello che ho fatto è stato scoprire la versione di Debian usando,

$ cat /etc/debian_version buster/sid

poi ha sostituito la versione Debian in

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

4

Avviso: utilizzare i passaggi seguenti a proprio rischio. Potresti ricevere risultati diversi come indicato nei commenti. Si prega di prestare attenzione e di avere un backup completo prima di farlo.

Di seguito è riportato un elenco di passaggi utilizzati per risolvere il problema:

  1. Rimuovi Docker (questo non eliminerà immagini, contenitori, volumi o file di configurazione personalizzati):

    sudo apt-get purge docker-engine

  2. Rimuovi la chiave Docker apt:

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. Elimina il file docker.list:

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

  4. Elimina manualmente i file della cache apt:

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

  5. Elimina apt-transport-https e ca-certificates :

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

  6. Pulisci apt ed esegui autoremove:

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

  7. Riavvia Ubuntu:

    sudo riavvio

  8. Esegui apt-get update:

    sudo apt-get update

  9. Installa di nuovo apt-transport-https e ca-certificates:

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

  10. Aggiungi la chiave apt:

> sudo apt-key adv \
       --keyserver hkp://ha.pool.sks-keyservers.net:80 \
       --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. Aggiungi di nuovo il file docker.list:
> echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" |
sudo tee /etc/apt/sources.list.d/docker.list
  1. Esegui apt-get update:
> sudo apt-get update
  1. Installa Docker:
> sudo apt-get install docker-engine

Certo, ci sono molte variabili ei risultati possono variare. Tuttavia, questi passaggi coprono quante più aree possibili per garantire che i potenziali punti problematici vengano eliminati in modo che la probabilità di successo sia maggiore.

Aggiornamento 7/6/2017

Sembra che le versioni più recenti di Docker stiano utilizzando un diverso processo di installazione che dovrebbe eliminare molti di questi problemi. Assicurati di controllare https://docs.docker.com/engine/installation/linux/ubuntu/ .


Dopo aver eseguito il riavvio, la mia schermata di accesso viene visualizzata in Linux Mint
Sathishkumar Rakkiasamy

4
in esecuzione: sudo apt-get purge apt-transport-https ca-certificates è un'idea orribile, penso di aver appena
rovinato

@RicardoE, dopo averlo eseguito, cosa sta succedendo al tuo sistema?
Daniel Eagle

1
Sto usando linux mint, e fondamentalmente ha disinstallato tutta la roba alla cannella e alcuni altri software / pacchetti come google chrome
RicardoE

1
Sto reinstallando di nuovo tutto con, controllando l'elenco in: /var/log/apt/history.log
RicardoE

3

Ho anche avuto un problema simile. Qualcuno potrebbe trovare utile ciò che ha funzionato per me.

La macchina esegue Ubuntu 16.04 e dispone di Docker CE. Dopo aver esaminato le risposte ei collegamenti forniti qui, in particolare dal collegamento dal sito Web Docker fornito da Elliot Beach, ho aperto il mio /etc/apt/sources.list e l'ho esaminato.

Il file aveva sia deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stablee deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Poiché il secondo era quello che era necessario, ho semplicemente commentato il primo, salvato il documento e ora il problema è stato risolto. Come test, sono tornato nello stesso documento, ho rimosso il segno di commento e sono corso di sudo apt-get updatenuovo. Il problema è tornato quando l'ho fatto.

Quindi, ricapitolando: non solo avevo il nome della distribuzione Ubuntu del mio genitore come indicato sul sito Web di Docker, ma ho anche commentato la riga contenente ancora (lsb_release -cs).


Su Ubuntu 18.10 ho commentato questa riga: # deb [arch = amd64] download.docker.com/linux/ubuntu cosmic stable
Sergei G


1

Ho ancora lo stesso problema. Nessuna delle risposte precedenti sembra risolverlo. Ho Ubuntu 16.04 e seguo i passaggi descritti in https://docs.docker.com/install/linux/docker-ce/ubuntu/

Sospetto che sia correlato a un apt-getbug relativo a https. Le informazioni stampate da apt-getsono un po 'fuorvianti.

Penso che Failed to fetch..possa anche essere tradotto come:problem accessing resource from within an https connection

Come sono arrivato a questa conclusione:

Prima di tutto sono dietro un proxy aziendale quindi ho impostato la seguente configurazione:

/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;
};

Ho eseguito i seguenti test con voci diverse in sources.list

voce di prova 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.

Fallimento

voce di prova 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

Successo

voce di prova 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.

Fallimento


Nei casi precedenti l'URL di apt-get Failed to fetche anche il Release file erano effettivamente accessibili da browser/ wget/ curlutilizzando la stessa configurazione proxy.
Il fatto che apt-getfunzionasse solo con l'URL del proxy inverso http, implica che ci sia qualche problema di accesso alle risorse da una connessione https .
Non so quale sia questo problema ma apt-getdovrebbe mostrare un messaggio più informativo ( aptè ancora meno prolisso).

Nota: il caso di wireharking 1 ha mostrato che il proxy ha CONNECTavuto successo e non è stato inviato alcun RST, ma ovviamente non è stato possibile leggere i file.


0

Questo è ciò che ha funzionato per me su 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

Miglior controllo per questo problema: (se sei dietro proxy), (testato su ubuntu 18.04), (funzionerà anche su altri ubuntu), (principalmente errore in: https_proxy = "http://192.168.0.251:808/)

  1. Controlla questi file:

    #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. Aggiungi repository stabile docker

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

    #sudo apt-get update
    
  4. Controlla Docker CE

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

    #sudo apt-get install docker-ce
    
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.