O repositório do Docker não tem um arquivo de lançamento ao executar apt-get update no Ubuntu


94

Estou usando o Ubuntu 16.10 e recentemente instalei o Docker (v1.12.4) usando a compilação do Xenial seguindo as instruções encontradas aqui . Não encontrei nenhum problema ao criar contêineres, garantindo que eles reiniciem automaticamente, etc.

No entanto, agora, toda vez que executo apt-get update , recebo a seguinte mensagem de erro:

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.

Tentei remediar o problema seguindo os conselhos encontrados aqui e não consigo resolver este problema.

Alguém encontrou isso antes e corrigiu? Em caso afirmativo, o que é necessário para resolver isso?


1
Por favor, veja se isso ajuda - askubuntu.com/questions/768569/…
— Rao

@Rao, infelizmente isso não resolve o problema. Ainda estou recebendo a mesma mensagem de erro depois de remover a chave, a entrada da lista de fontes, executar apt-get update novamente e repetir as etapas de instalação do Docker.
— Daniel Eagle

@Rao, descobri a solução e adicionei a resposta. No entanto, o artigo que você mencionou pode ser benéfico para outras pessoas que tropeçam na minha pergunta, então +1. Felicidades.
— Daniel Eagle

1
No meu caso, as respostas abaixo não ajudaram. Meu problema era que eu estava usando apt-cacher-ng que não fazia proxy de tráfego https. github.com/moby/moby/issues/22599#issuecomment-404675734
— jamshid

Respostas:


86

No Linux Mint, as instruções oficiais não funcionaram para mim. Eu tive que entrar /etc/apt/sources.list.d/additional-repositories.liste mudar serenapara xenial.


2
Apenas uma nota, por algum motivo havia uma linha docker com trustye outra com serenanaquele arquivo para mim. Talvez eu tenha tentado passar por esse mesmo processo algum tempo atrás e me esquecido. De qualquer forma, tive que deletar a trustylinha, caso contrário, ela reclamou de dependências insolúveis.
— lobati,

3
Obrigado pela referência do diretório sources.list.d. Foi corrigido o problema xenial do Ubuntu com "sudo rm /etc/apt/sources.list.d/docker*". Agora o apt-get update finalmente funciona.
— nine9five

2
O mesmo para o Debian: substitua "debian 10 stable" por "debian stretch stable" no arquivo "/etc/apt/sources.list.d/docker.list" e deve funcionar.
— peschanko

Tive que mudar o meu parabionic
— jpthesolver2

74

Para o Linux Mint, esse problema é realmente mencionado no site do Docker :

Nota: O lsb_release -cssubcomando abaixo retorna o nome da sua distribuição Ubuntu, como xenial. Às vezes, em uma distribuição como o Linux Mint, você pode ter que mudar$(lsb_release -cs) para a distribuição pai do Ubuntu. Por exemplo, se você estiver usando o Linux Mint Rafaela, pode usar o trusty.

amd64:

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

O lsb_release -cscomando fornece um repositório para o qual o Docker não tem pacote preparado - você deve alterá-lo para xenial.

O comando correto para Linux Mint 18 baseado no Ubuntu 16.04 Xenial é

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

1
O comando que você forneceu é o mesmo que existe no site do docker. No entanto, não funciona para mim no Ubuntu 16.04. A entrada gerada em sources.listé: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stableMas ainda assim o mesmo problema. Gostaria que alguém pudesse explicar por que ele não consegue encontrar Releasedentro https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/. Triste: Depois de tantos anos usando o Ubuntu, ainda não consigo entender como as coisas funcionam com caminhos de repositório.
— Marinos An

Isso também resolveu meus problemas para mover as coisas na nova distro WLinux.
— rainabba

23

Elliot Beach está correto. Obrigado Elliot.

Aqui está o código da minha essência .

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
Cuidado ao executar esses comandos se não estiver executando o xenial. Este comando seria mais seguroadd-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
— spuder de

Em alguns casos (por exemplo, Mint), os lsb_release -csretornos taraque não têm uma versão com suporte, portanto, substituir especificamente o xenialconforme mostrado (ou confiável) é uma solução alternativa útil.
— Strixy

O usuário formalmente conhecido como Elliott Beach será referido como Chimpanzé Guerreiro
— Warlike Chimpanzee

Sua essência corrige o problema "E: Package 'containerd.io' não tem nenhum candidato a instalação" com o Kubuntu eoan. Algumas pessoas resolveram com biônico, mas não funcionou para mim, seguir sua essência com xenial funcionou. O problema surge quando você usa $(lsb_release -cs)porque não é totalmente compatível. Outros relatam o uso de tal hack de "configuração incorreta" sem problemas por 4 meses e contando ( stackoverflow.com/questions/60274857/… )
— Leamsi

17

Conforme sugerido no documento docker oficial também. Tente executar este:

  • sudo vi /etc/apt/sources.list

Em seguida, remova / comente qualquer ( deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stable) tal entrada nas últimas linhas do arquivo.

Então, no terminal, execute este comando:

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

  • sudo apt-get update

Funcionou no meu caso.


10

Eu vi uma postagem interessante da Ikraider aqui que resolveu meu problema: https://github.com/docker/docker/issues/22599

As instruções do site estão erradas, aqui está o que funciona em 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

Usuários do Linux Mint 20 Ulyana precisam mudar "ulyana" para "biônico" no

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

igual a:

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

4

Eu estava enfrentando um problema semelhante no Linux, mas descobri a versão do Debian usando,

$ cat /etc/debian_version buster/sid

então substituiu a versão Debian em

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

4

Aviso: Use as etapas abaixo por sua própria conta e risco. Você pode receber resultados diferentes conforme indicado nos comentários. Tenha cuidado e faça um backup completo antes de fazer isso.

Abaixo está uma lista de etapas usadas para resolver o problema:

  1. Remova o Docker (isso não excluirá imagens, contêineres, volumes ou arquivos de configuração personalizados):

    sudo apt-get purge docker-engine

  2. Remova a chave Docker apt:

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. Exclua o arquivo docker.list:

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

  4. Exclua manualmente os arquivos de cache apt:

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

  5. Exclua apt-transport-https e ca-certificados :

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

  6. Limpe o apt e execute a remoção automática:

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

  7. Reinicialize o Ubuntu:

    sudo reboot

  8. Execute apt-get update:

    sudo apt-get update

  9. Instale apt-transport-https e ca-certificates novamente:

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

  10. Adicione a chave apt:

> sudo apt-key adv \
       --keyserver hkp://ha.pool.sks-keyservers.net:80 \
       --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. Adicione o arquivo docker.list novamente:
> echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" |
sudo tee /etc/apt/sources.list.d/docker.list
  1. Execute apt-get update:
> sudo apt-get update
  1. Instale o Docker:
> sudo apt-get install docker-engine

Certo, existem muitas variáveis ​​e seus resultados podem variar. No entanto, essas etapas cobrem o máximo de áreas possível para garantir que os possíveis pontos problemáticos sejam eliminados para que a probabilidade de sucesso seja maior.

Atualização 06/07/2017

Parece que as versões mais recentes do Docker estão usando um processo de instalação diferente, que deve eliminar muitos desses problemas. Certifique-se de verificar https://docs.docker.com/engine/installation/linux/ubuntu/ .


Após executar a reinicialização, minha tela de login está aparecendo no Linux Mint
— Sathishkumar Rakkiasamy

4
executando: sudo apt-get purge apt-transport-https ca-certificados é uma ideia horrível, acho que acabei de estragar meu SO: C
— RicardoE

@RicardoE, depois de rodar isso, o que está acontecendo com o seu sistema?
— Daniel Eagle

1
Estou usando o linux mint, e basicamente desinstalou todo o material de canela e alguns outros softare / pacotes como google chrome
— RicardoE

1
Vou reinstalar tudo de novo com, verificando a lista em: /var/log/apt/history.log
— RicardoE

3

Eu também tive um problema semelhante. Alguém pode achar útil o que funcionou para mim.

A máquina está executando o Ubuntu 16.04 e tem Docker CE. Depois de examinar as respostas e os links fornecidos aqui, especialmente do link do site Docker fornecido por Elliot Beach, abri meu /etc/apt/sources.list e o examinei.

O arquivo tinha ambos deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stablee deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Como o segundo era o que eu precisava, simplesmente comentei o primeiro, salvei o documento e agora o problema foi corrigido. Como um teste, voltei para o mesmo documento, removi o sinal de comentário e corri sudo apt-get updatenovamente. O problema voltou quando eu fiz isso.

Então, para recapitular: não só eu tinha meu nome de distribuição pai do Ubuntu conforme declarado no site do Docker, mas também comentei a linha que ainda contém (lsb_release -cs).


No Ubuntu 18.10, comentei esta linha: # deb [arch = amd64] download.docker.com/linux/ubuntu cosmic stable
— Sergei G


1

Eu ainda tenho o mesmo problema. Nenhuma das respostas acima parece resolvê-lo. Tenho ubuntu 16.04 e sigo os passos descritos em https://docs.docker.com/install/linux/docker-ce/ubuntu/

Suspeito que esteja relacionado a um apt-getbug em https. A informação que está sendo impressa por apt-geté meio enganosa.

Acho que Failed to fetch..também pode ser traduzido como:problem accessing resource from within an https connection

Como cheguei a esta conclusão:

Em primeiro lugar, estou atrás de um proxy corporativo, portanto, defini a seguinte configuração:

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

Realizei os seguintes testes com entradas diferentes em sources.list

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

Fracasso

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

Sucesso

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

Fracasso


Nos casos acima, a url do apt-get Failed to fetche também o Release arquivo, estavam realmente acessíveis a partir de browser/ wget/ curlusando a mesma configuração de proxy.
O fato de que apt-getfuncionou apenas com a url de proxy reverso http, implica que há algum problema ao acessar recursos de dentro de uma conexão https .
Não sei o que é esse problema, mas apt-getdeveria mostrar uma mensagem mais informativa ( apté ainda menos prolixo).

Nota: O caso 1 do WireSharking mostrou que o proxy CONNECTfoi bem-sucedido e nenhum RST foi enviado, mas é claro que os arquivos não puderam ser lidos.


0

Isso é o que funcionou para mim no 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

Melhor verificar este problema: (se você estiver atrás de proxy), (testado no ubuntu 18.04), (funcionará em outro ubuntu também), (principalmente erro em: https_proxy = "http://192.168.0.251:808/)

  1. Verifique estes arquivos:

    #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. Adicionar repositório docker estável

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

    #sudo apt-get update
    
  4. Verifique Docker CE

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

    #sudo apt-get install docker-ce
    
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.