Repozytorium Docker nie ma pliku wydania podczas uruchamiania aktualizacji apt-get w systemie Ubuntu


89

Używam Ubuntu 16.10 i ostatnio zainstalowanego Dockera (v1.12.4) przy użyciu kompilacji Xenial, postępując zgodnie z instrukcjami tutaj . Nie napotkałem żadnych problemów z tworzeniem kontenerów, zapewnianiem ich automatycznego restartu itp.

Jednak teraz za każdym razem, gdy uruchamiam aktualizację apt-get , pojawia się następujący komunikat o błędzie:

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.

Próbowałem rozwiązać problem, postępując zgodnie z poradami tutaj i nie wydaje się, aby rozwiązać ten problem.

Czy ktoś wcześniej to napotkał i naprawił? Jeśli tak, co jest potrzebne, aby rozwiązać ten problem?


1
Sprawdź, czy to pomoże - askubuntu.com/questions/768569/…
— Rao

@Rao niestety to nie rozwiązuje problemu. Nadal pojawia się ten sam komunikat o błędzie po usunięciu klucza, wpisie listy źródeł, ponownym uruchomieniu apt-get update, a następnie powtórzeniu kroków instalacji platformy Docker.
— Daniel Eagle,

@Rao, znalazłem rozwiązanie i dodałem odpowiedź. Jednak wspomniany artykuł może być korzystny dla innych, którzy natkną się na moje pytanie, więc +1. Twoje zdrowie.
— Daniel Eagle,

1
W moim przypadku poniższe odpowiedzi nie pomogły. Mój problem polegał na tym, że używałem apt-cacher-ng, który nie pośredniczył w ruchu https. github.com/moby/moby/issues/22599#issuecomment-404675734
— jamshid

Odpowiedzi:


84

W Linux Mint oficjalne instrukcje nie działały dla mnie. Musiałem wejść /etc/apt/sources.list.d/additional-repositories.listi zmienić serenasię xenial.


2
Tylko uwaga, z jakiegoś powodu w tym pliku była dla mnie linia dokera, trustya druga z serena. Może jakiś czas temu próbowałem przejść przez ten sam proces i zapomniałem o tym. W każdym razie musiałem usunąć trustylinię, w przeciwnym razie narzekała na nierozwiązywalne zależności.
— lobati

3
Dzięki za odniesienie do katalogu sources.list.d. Naprawiono problem z Xenialem w Ubuntu z „sudo rm /etc/apt/sources.list.d/docker*”. Teraz aktualizacja apt-get wreszcie działa.
— nine9five

2
To samo dla Debiana: zamień „debian 10 stabilny” na „debian stretch stabilny” w pliku „/etc/apt/sources.list.d/docker.list” i powinno działać.
— peschanko

Musiałem zmienić mój nabionic
— jpthesolver2

72

W przypadku Linux Mint ten problem jest faktycznie wymieniony w pliku witrynie Docker :

Zanotuj lsb_release -cs poniższe polecenie podrzędne zwraca nazwę dystrybucji Ubuntu, na przykład xenial. Czasami w dystrybucji takiej jak Linux Mint może być konieczna zmiana $(lsb_release -cs)na nadrzędną dystrybucję Ubuntu. Na przykład, jeśli używasz Linux Mint Rafaela, możesz użyć zaufanego.

amd64:

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

Plik lsb_release -csKomenda daje repozytorium dla których Docker nie ma przygotowaną paczkę - należy go zmienić na xenial.

Prawidłowe polecenie dla Linux Mint 18 opartego na Ubuntu 16.04 Xenial to

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

1
Podane polecenie jest takie samo, jak to, które istnieje w witrynie Dockera. Jednak to nie działa dla mnie na Ubuntu 16.04. Wpis wygenerowany w sources.listto: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stableAle wciąż ten sam problem. Chciałbym, żeby ktoś mógł wyjaśnić, dlaczego nie może znaleźć się w Releaseśrodku https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/. Smutne: Po tylu latach używania Ubuntu nadal nie mogę dowiedzieć się, jak działają ścieżki repozytorium.
— Marinos An

To rozwiązało również moje problemy z wprowadzaniem zmian w nowej dystrybucji WLinux.
— rainabba

22

Plaża Elliot ma rację. Dzięki, Elliot.

Oto kod z mojej istoty .

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
Ostrożnie uruchamiaj te polecenia, jeśli nie używasz Xenialu. To polecenie byłoby bezpieczniejszeadd-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
— spuder

W niektórych przypadkach (np. Mint) lsb_release -cszwroty, taraktóre nie mają obsługiwanej wersji, więc specjalnie nadpisywanie, xenialjak pokazano (lub sprawdzone), jest użytecznym obejściem.
— Strixy

Użytkownik, formalnie znany jako Elliott Beach, będzie dalej nazywany Warlike Szympans
— Wojowniczy Szympans

Twoje sedno rozwiązuje problem „E: Pakiet 'containerd.io' nie ma kandydata do instalacji” w Kubuntu eoan. Niektórzy rozwiązali to z bionikiem, ale to nie zadziałało dla mnie, podążając za twoim sednem z xenialem. Problem pojawia się, gdy używasz, $(lsb_release -cs)ponieważ nie jest w pełni obsługiwany. Inni zgłaszają, że używali takiego hacka „błędnej konfiguracji” bez żadnych problemów przez 4 miesiące i licząc ( stackoverflow.com/questions/60274857/… )
— Leamsi,

17

Jak zasugerowano również w oficjalnym dokumencie dockera. Spróbuj uruchomić to:

  • sudo vi /etc/apt/sources.list

Następnie usuń / skomentuj dowolny ( deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stable) taki wpis w ostatnich liniach pliku.

Następnie w terminalu uruchom to polecenie:

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

  • sudo apt-get update

W moim przypadku zadziałało.


10

Widziałem tutaj interesujący post od Ikraidera, który rozwiązał mój problem: https://github.com/docker/docker/issues/22599

Instrukcje na stronie są błędne, oto, co działa w 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

Użytkownicy Linux Mint 20 Ulyana muszą zmienić „ulyana” na „bionic” w

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

tak:

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

4

Miałem podobny problem w mennicy Linuksa, co zrobiłem, okazało się, że wersja Debiana używa,

$ cat /etc/debian_version buster/sid

następnie zastąpił wersję Debiana w

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

4

Ostrzeżenie: wykonaj poniższe czynności na własne ryzyko. Możesz otrzymać różne wyniki, jak wskazano w komentarzach. Przed wykonaniem tej czynności należy zachować ostrożność i mieć pełną kopię zapasową.

Poniżej znajduje się lista czynności, które należy wykonać, aby rozwiązać problem:

  1. Usuń Docker (nie spowoduje to usunięcia obrazów, kontenerów, woluminów ani niestandardowych plików konfiguracyjnych):

    sudo apt-get purge docker-engine

  2. Usuń klucz apt Docker:

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. Usuń plik docker.list:

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

  4. Ręcznie usuń pliki pamięci podręcznej apt:

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

  5. Usuń apt-transport-https i certyfikaty ca :

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

  6. Czysty apt i wykonaj autoraove:

    sudo apt-get clean && sudo apt-get autorove

  7. Uruchom ponownie Ubuntu:

    sudo reboot

  8. Uruchom aktualizację apt-get:

    sudo apt-get update

  9. Zainstaluj ponownie apt-transport-https i ca-Certificates:

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

  10. Dodaj klucz apt:

> sudo apt-key adv \
       --keyserver hkp://ha.pool.sks-keyservers.net:80 \
       --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. Dodaj ponownie plik docker.list:
> echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" |
sudo tee /etc/apt/sources.list.d/docker.list
  1. Uruchom aktualizację apt-get:
> sudo apt-get update
  1. Zainstaluj Docker:
> sudo apt-get install docker-engine

To prawda, istnieje wiele zmiennych, a Twoje wyniki mogą się różnić. Jednak te kroki obejmują jak najwięcej obszarów, aby upewnić się, że potencjalne miejsca problemowe zostaną usunięte, a prawdopodobieństwo sukcesu będzie większe.

Aktualizacja 7/6/2017

Wygląda na to, że nowsze wersje Dockera używają innego procesu instalacji, co powinno wyeliminować wiele z tych problemów. Koniecznie sprawdź https://docs.docker.com/engine/installation/linux/ubuntu/ .


Po uruchomieniu restartu mój ekran logowania pojawia się w Linux Mint
— Sathishkumar Rakkiasamy

3
działa: sudo apt-get purge apt-transport-https ca-Certificates to okropny pomysł, myślę, że właśnie schrzaniłem mój system operacyjny: C
— RicardoE

@RicardoE, po uruchomieniu tego, co się dzieje z twoim systemem?
— Daniel Eagle

1
Używam linux mint i zasadniczo odinstalowałem całą zawartość cynamonu i kilka innych programów / pakietów, takich jak Google Chrome
— RicardoE

1
Ponownie instaluję wszystko ponownie, sprawdzając listę w: /var/log/apt/history.log
— RicardoE

3

Miałem też podobny problem. Ktoś może uznać to, co zadziałało, za pomocne.

Maszyna działa pod kontrolą Ubuntu 16.04 i ma Docker CE. Po przejrzeniu odpowiedzi i linków podanych tutaj, szczególnie z linku ze strony Docker podanego przez Elliot Beach, otworzyłem mój /etc/apt/sources.list i sprawdziłem go.

Plik zawierał zarówno deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stablei deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Ponieważ potrzebowaliśmy drugiego, po prostu skomentowałem pierwszy, zapisałem dokument i teraz problem został rozwiązany. W ramach testu wróciłem do tego samego dokumentu, usunąłem znak komentarza i pobiegłemsudo apt-get update ponownie. Problem powrócił, kiedy to zrobiłem.

Podsumowując: nie tylko miałem nazwę dystrybucji nadrzędnej Ubuntu, jak podano na stronie Docker, ale także zakomentowałem linię zawierającą (lsb_release -cs).


W Ubuntu 18.10 skomentowałem tę linię: # deb [arch = amd64] download.docker.com/linux/ubuntu cosmic stable
— Sergei G


1

Nadal mam ten sam problem. Żadna z powyższych odpowiedzi nie wydaje się rozwiązać tego problemu. Mam ubuntu 16.04 i postępuję zgodnie z instrukcjami opisanymi na https://docs.docker.com/install/linux/docker-ce/ubuntu/

Podejrzewam, że jest to związane z apt-getbłędem dotyczącym https. Informacje, które są drukowane, apt-getsą trochę mylące.

Myślę, że Failed to fetch..można to również przetłumaczyć jako:problem accessing resource from within an https connection

Jak doszedłem do tego wniosku:

Przede wszystkim jestem za korporacyjnym proxy, więc ustawiłem następującą konfigurację:

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

Wykonałem następujące testy z różnymi wpisami w sources.list

wpis testowy 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.

Niepowodzenie

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

Sukces

wpis testowy 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.

Niepowodzenie


W powyższych przypadkach adres URL, do którego apt-get, Failed to fetcha także Release plik, były faktycznie dostępne z browser/ wget/ curlprzy użyciu tej samej konfiguracji proxy.
Fakt, że apt-getdziałał tylko z adresem URL zwrotnego serwera proxy http, sugeruje, że istnieje pewien problem z dostępem do zasobów z poziomu połączenia https .
Nie wiem, na czym polega ten problem, ale apt-getpowinienem pokazać komunikat bardziej informacyjny ( aptjest jeszcze mniej szczegółowy).

Uwaga: przypadek 1 programu wiresharking wykazał, że serwer proxy się CONNECTpowiódł i nie wysłano żadnego RST, ale oczywiście nie można było odczytać plików.


0

To właśnie zadziałało dla mnie w 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

Najlepiej sprawdzić ten problem: (jeśli korzystasz z serwera proxy), (testowane na systemie ubuntu 18.04), (będzie działać również na innych urządzeniach ubuntu), (głównie błąd: https_proxy = "http://192.168.0.251:808/)

  1. Sprawdź te pliki:

    #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. Dodaj stabilne repozytorium Dockera

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

    #sudo apt-get update
    
  4. Sprawdź Docker CE

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

    #sudo apt-get install docker-ce
    
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.