El repositorio de Docker no tiene un archivo de versión al ejecutar apt-get update en Ubuntu

89

Estoy usando Ubuntu 16.10 y recientemente instalé Docker (v1.12.4) usando la compilación Xenial siguiendo las instrucciones que se encuentran aquí . No he tenido problemas para crear contenedores, asegurarme de que se reinicien automáticamente, etc.

Sin embargo, ahora, cada vez que ejecuto apt-get update , recibo el siguiente mensaje de error:

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.

He tratado de solucionar el problema siguiendo los consejos que se encuentran aquí y parece que no puedo resolver este problema.

¿Alguien ha encontrado esto antes y lo ha solucionado? Si es así, ¿qué se necesita para resolver esto?

Daniel Eagle
fuente
1
Vea si esto ayuda - askubuntu.com/questions/768569/…
Rao
@Rao, lamentablemente esto no resuelve el problema. Sigo recibiendo el mismo mensaje de error después de eliminar la clave, la entrada de la lista de fuentes, ejecutar apt-get update nuevamente y luego repetir los pasos de instalación de Docker.
Daniel Eagle
@Rao, descubrí la solución y agregué la respuesta. Sin embargo, el artículo que mencionaste puede ser beneficioso para quienes se encuentren con mi pregunta, así que +1. Salud.
Daniel Eagle
1
En mi caso, las respuestas a continuación no ayudaron. Mi problema era que estaba usando apt-cacher-ng que no estaba transfiriendo tráfico https. github.com/moby/moby/issues/22599#issuecomment-404675734
jamshid

Respuestas:

84

En Linux Mint, las instrucciones oficiales no me funcionaron. Tenía que entrar en /etc/apt/sources.list.d/additional-repositories.listy cambiar serenaa xenial.

Salami
fuente
2
Solo una nota, por alguna razón había una línea acoplable con trustyy otra con serenaen ese archivo para mí. Tal vez traté de pasar por este mismo proceso hace algún tiempo y lo olvidé. En cualquier caso, tuve que eliminar la trustylínea, de lo contrario se quejó de dependencias irresolubles.
lobati
3
Gracias por la referencia del directorio sources.list.d. Se corrigió el problema de Ubuntu xenial con "sudo rm /etc/apt/sources.list.d/docker*". Ahora, apt-get update funciona finalmente.
nine9five
2
Lo mismo para Debian: reemplace "debian 10 estable" por "debian stretch estable" en el archivo "/etc/apt/sources.list.d/docker.list" y debería funcionar.
peschanko
Tuve que cambiar el mío abionic
jpthesolver2
72

Para Linux Mint, este problema se menciona en el sitio web de Docker :

Nota: El lsb_release -cssubcomando siguiente devuelve el nombre de su distribución de Ubuntu, como xenial. A veces, en una distribución como Linux Mint, es posible que deba cambiar $(lsb_release -cs)a su distribución principal de Ubuntu. Por ejemplo, si está utilizando Linux Mint Rafaela, podría utilizar trusty.

amd64:

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

El lsb_release -cscomando proporciona un repositorio para el que Docker no tiene un paquete preparado; debe cambiarlo a xenial.

El comando correcto para Linux Mint 18 que se basa en Ubuntu 16.04 Xenial es

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   xenial \
   stable"
Chimpancé belicoso
fuente
1
El comando que ha proporcionado es el mismo que existe en el sitio de Docker. Sin embargo, no me funciona en ubuntu 16.04. La entrada generada en sources.listes: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stablePero sigue siendo el mismo problema. Ojalá alguien pudiera explicar por qué no puede encontrar el Releaseinterior https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/. Triste: Después de tantos años de usar ubuntu, todavía no puedo entender cómo funcionan las cosas con las rutas del repositorio.
Marinos An
Esto también resolvió mis problemas para que las cosas se movieran en la nueva distribución de WLinux.
rainabba
22

Elliot Beach tiene razón. Gracias Elliot.

Aquí está el código de mi esencia .

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
Christopher Govender
fuente
2
Tenga cuidado al ejecutar estos comandos si no está ejecutando xenial. Este comando sería más seguroadd-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
spuder
En algunos casos (es decir, Mint), las lsb_release -csdevoluciones taraque no tienen una versión compatible, por lo que anular específicamente xenialcomo se muestra (o confiable) es una solución alternativa útil.
Strixy
El usuario formalmente conocido como Elliott Beach será referido como Warlike Chimpanzee
Warlike Chimpanzee
Su esencia corrige el problema "E: El paquete 'containerd.io' no tiene candidato de instalación" con Kubuntu eoan. Algunas personas lo resolvieron con bionic, pero no funcionó para mí, seguir tu esencia con xenial sí lo hizo. El problema surge cuando lo usa $(lsb_release -cs)porque no es totalmente compatible. Otros informan haber usado un truco de "configuración incorrecta" sin problemas durante 4 meses y contando ( stackoverflow.com/questions/60274857/… )
Leamsi
17

Como se sugiere en el documento oficial de Docker también. Intente ejecutar esto:

  • sudo vi /etc/apt/sources.list

Luego elimine / comente cualquier ( deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stable) entrada de este tipo en las últimas líneas del archivo.

Luego, en la terminal, ejecute este comando:

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

  • sudo apt-get update

Funcionó en mi caso.

parneeti sood
fuente
10

Vi una publicación interesante de Ikraider aquí que resolvió mi problema: https://github.com/docker/docker/issues/22599

Las instrucciones del sitio web son incorrectas, esto es lo que funciona en 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
Nicolas D
fuente
5

Los usuarios de Linux Mint 20 Ulyana deben cambiar "ulyana" a "biónico" en

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

al igual que:

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

Me enfrentaba a un problema similar en Linux mint, lo que hice fue descubrir la versión de Debian usando,

$ cat /etc/debian_version buster/sid

luego reemplazó la versión de Debian en

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

Advertencia: Siga los pasos a continuación bajo su propio riesgo. Puede recibir resultados diferentes como se indica en los comentarios. Tenga cuidado y tenga una copia de seguridad completa antes de hacer esto.

A continuación, se muestra una lista de los pasos que se utilizan para resolver el problema:

  1. Elimine Docker (esto no eliminará imágenes, contenedores, volúmenes o archivos de configuración personalizados):

    sudo apt-get purge docker-engine

  2. Quite la clave apt de Docker:

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. Elimina el archivo docker.list:

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

  4. Elimine manualmente los archivos de caché de apt:

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

  5. Elimine apt-transport-https y ca -ificates :

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

  6. Limpiar apt y realizar autoremove:

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

  7. Reinicie Ubuntu:

    sudo reiniciar

  8. Ejecute apt-get update:

    sudo apt-get update

  9. Instale apt-transport-https y ca -ificates nuevamente:

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

  10. Agregue la clave apt:

> sudo apt-key adv \
       --keyserver hkp://ha.pool.sks-keyservers.net:80 \
       --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. Agregue el archivo docker.list nuevamente:
> echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" |
sudo tee /etc/apt/sources.list.d/docker.list
  1. Ejecute apt-get update:
> sudo apt-get update
  1. Instalar Docker:
> sudo apt-get install docker-engine

Por supuesto, hay muchas variables y sus resultados pueden variar. Sin embargo, estos pasos cubren tantas áreas como sea posible para garantizar que se eliminen los posibles problemas de manera que la probabilidad de éxito sea mayor.

Actualización 6/7/2017

Parece que las versiones más nuevas de Docker están usando un proceso de instalación diferente que debería eliminar muchos de estos problemas. Asegúrese de consultar https://docs.docker.com/engine/installation/linux/ubuntu/ .

Daniel Eagle
fuente
Después de ejecutar el reinicio, mi pantalla de inicio de sesión aparece en Linux Mint
Sathishkumar Rakkiasamy
3
ejecutando: sudo apt-get purge apt-transport-https ca -ificates es una idea horrible, creo que acabo de arruinar mi sistema operativo: C
RicardoE
@RicardoE, después de ejecutar eso, ¿qué está pasando con su sistema?
Daniel Eagle
1
Estoy usando linux mint, y básicamente desinstaló todas las cosas de canela y algunos otros softare / paquetes como google chrome
RicardoE
1
Estoy reinstalando todo nuevamente con, revisando la lista en: /var/log/apt/history.log
RicardoE
3

También tuve un problema similar. Alguien podría encontrar útil lo que funcionó para mí.

La máquina ejecuta Ubuntu 16.04 y tiene Docker CE. Después de revisar las respuestas y los enlaces proporcionados aquí, especialmente desde el enlace del sitio web de Docker proporcionado por Elliot Beach, abrí mi /etc/apt/sources.list y lo examiné.

El archivo tenía ambos deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stabley deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Como el segundo era lo que se necesitaba, simplemente comenté el primero, guardé el documento y ahora el problema está solucionado. Como prueba, volví al mismo documento, eliminé el signo de comentario y volví a ejecutar sudo apt-get update. El problema volvió cuando hice eso.

Entonces, para recapitular: no solo tenía mi nombre de distribución de Ubuntu principal como se indica en el sitio web de Docker, sino que también comenté la línea que aún contiene (lsb_release -cs).

Simeón
fuente
En Ubuntu 18.10 comenté esta línea: # deb [arch = amd64] download.docker.com/linux/ubuntu cosmic stable
Sergei G
1

Sigo teniendo el mismo problema. Ninguna de las respuestas anteriores parece resolverlo. Tengo ubuntu 16.04 y sigo los pasos descritos en https://docs.docker.com/install/linux/docker-ce/ubuntu/

Sospecho que está relacionado con un apt-geterror relacionado con https. La información que imprime apt-getes engañosa.

Creo que Failed to fetch..eso también se puede traducir como:problem accessing resource from within an https connection

¿Cómo llegué a esta conclusión?

En primer lugar, estoy detrás de un proxy corporativo, así que establecí la siguiente configuración:

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

Realicé las siguientes pruebas con diferentes entradas en sources.list

entrada de prueba 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.

Fracaso

entrada de prueba 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

Éxito

entrada de prueba 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.

Fracaso


En los casos anteriores, la URL que apt-get Failed to fetchy también el Release archivo eran realmente accesibles desde browser/ wget/ curlusando la misma configuración de proxy.
El hecho de que apt-getfuncionó solo con la URL del proxy inverso http, implica que hay algún problema para acceder a los recursos desde una conexión https .
No sé cuál es este problema, pero apt-getdebería mostrar un mensaje más informativo ( aptes incluso menos detallado).

Nota: el caso de wireharking 1 mostró que el proxy CONNECTfue exitoso y no se envió ningún RST, pero, por supuesto, los archivos no se pudieron leer.

Marinos An
fuente
0

Esto es lo que funcionó para mí en 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

GilbertS
fuente
-1

La mejor comprobación para este problema: (si está detrás del proxy), (probado en ubuntu 18.04), (también funcionará en otros ubuntu), (principalmente error en: https_proxy = "http://192.168.0.251:808/)

  1. Verifique estos archivos:

    #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. Agregar repositorio estable de Docker

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

    #sudo apt-get update
    
  4. Verificar Docker CE

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

    #sudo apt-get install docker-ce
    
Abhishek Jangid
fuente