Repositori Docker Tidak Memiliki File Rilis saat Menjalankan pembaruan apt-get di Ubuntu


94

Saya menggunakan Ubuntu 16.10 dan baru saja menginstal Docker (v1.12.4) menggunakan Xenial build dengan mengikuti instruksi yang ditemukan di sini . Saya tidak mengalami masalah apa pun saat membuat container, memastikan container dimulai ulang secara otomatis, dll.

Namun, sekarang setiap kali saya menjalankan pembaruan apt-get saya menerima pesan kesalahan berikut:

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.

Saya telah mencoba memperbaiki masalah dengan mengikuti saran yang ditemukan di sini dan sepertinya tidak dapat menyelesaikan masalah ini.

Adakah yang pernah mengalami ini sebelumnya dan memperbaikinya? Jika ya, apa yang diperlukan untuk menyelesaikannya?


1
Silakan lihat apakah ini membantu - askubuntu.com/questions/768569/…
Rao

@Rao, sayangnya ini tidak menyelesaikan masalah. Saya masih mendapatkan pesan kesalahan yang sama setelah menghapus kunci, entri daftar sumber, menjalankan pembaruan apt-get lagi, dan kemudian mengulangi langkah-langkah instalasi Docker.
Daniel Eagle

@Rao, saya menemukan solusinya dan menambahkan jawabannya. Namun, artikel yang Anda sebutkan semoga bermanfaat bagi orang lain tersandung pada pertanyaan saya jadi +1. Bersulang.
Daniel Eagle

1
Dalam kasus saya, jawaban di bawah tidak membantu. Masalah saya adalah saya menggunakan apt-cacher-ng yang tidak mem-proxy lalu lintas https. github.com/moby/moby/issues/22599#issuecomment-404675734
jamshid

Jawaban:


86

Di Linux Mint, instruksi resmi tidak berfungsi untuk saya. Saya harus masuk /etc/apt/sources.list.d/additional-repositories.listdan berganti serenake xenial.


2
Sekadar catatan, untuk beberapa alasan ada garis buruh pelabuhan dengan trustydan satu lagi dengan serenadalam file itu untuk saya. Mungkin saya mencoba melalui proses yang sama ini beberapa waktu lalu dan melupakannya. Bagaimanapun, saya harus menghapus trustybaris, jika tidak maka mengeluh tentang ketergantungan yang tidak dapat diselesaikan.
lobati

3
Terima kasih atas referensi direktori sources.list.d. Memperbaiki masalah xenial Ubuntu dengan "sudo rm /etc/apt/sources.list.d/docker*". Sekarang pembaruan apt-get akhirnya berfungsi.
nine9five

2
Hal yang sama untuk Debian: ganti "debian 10 stable" menjadi "debian stretch stable" dalam file "/etc/apt/sources.list.d/docker.list" dan seharusnya berfungsi.
peschanko

Saya harus mengubah milik saya menjadibionic
jpthesolver2

74

Untuk Linux Mint, masalah ini sebenarnya dirujuk di situs Docker :

Catatan: lsb_release -csSub-perintah di bawah ini mengembalikan nama distribusi Ubuntu Anda, seperti xenial. Terkadang, dalam distribusi seperti Linux Mint, Anda mungkin harus beralih $(lsb_release -cs)ke distribusi Ubuntu induk Anda. Misalnya, jika Anda menggunakan Linux Mint Rafaela, Anda dapat menggunakan trusty.

amd64:

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

The lsb_release -csperintah memberikan repositori yang Docker tidak memiliki paket siap - Anda harus mengubahnya ke Xenial.

Perintah yang benar untuk Linux Mint 18 yang didasarkan pada Ubuntu 16.04 Xenial adalah

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

1
Perintah yang Anda berikan sama dengan yang ada di situs buruh pelabuhan. Namun itu tidak berhasil untuk saya di ubuntu 16.04. Entri yang dihasilkan sources.listadalah: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stableTapi masih masalah yang sama. Saya berharap seseorang dapat menjelaskan mengapa tidak dapat ditemukan Releasedi dalam https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/. Sedih: Setelah bertahun-tahun menggunakan ubuntu saya masih tidak tahu bagaimana cara bekerja dengan jalur repositori.
Marinos An

Ini memecahkan masalah saya untuk membuat semuanya bergerak di distro WLinux baru juga.
rainabba

23

Pantai Elliot benar. Terima kasih Elliot.

Ini kode dari intisari saya .

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
Hati-hati menjalankan perintah ini jika tidak menjalankan xenial. Perintah ini akan lebih amanadd-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
spuder

Dalam beberapa kasus (mis. Mint) lsb_release -cspengembalian tarayang tidak memiliki rilis yang didukung sehingga secara khusus mengganti xenialseperti yang ditunjukkan (atau terpercaya) adalah solusi yang berguna.
Strixy

Pengguna secara resmi dikenal sebagai Elliott Pantai akan bergerak maju disebut sebagai Warlike Chimpanzee
Warlike Chimpanzee

Inti Anda memperbaiki masalah "E: Package 'containserd.io' tidak memiliki kandidat instalasi" pada Kubuntu eoan. Beberapa orang memecahkannya dengan bionik, tetapi tidak berhasil untuk saya, mengikuti inti Anda dengan xenial berhasil. Masalah muncul saat Anda menggunakan $(lsb_release -cs)karena tidak didukung sepenuhnya. Yang lain melaporkan menggunakan peretasan "salah konfigurasi" seperti itu tanpa masalah selama 4 bulan dan terus bertambah ( stackoverflow.com/questions/60274857/… )
Leamsi

17

Seperti yang disarankan dalam dokumen buruh B / M resmi juga. Coba jalankan ini:

  • sudo vi /etc/apt/sources.list

Kemudian hapus / komentari deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stableentri apa pun ( ) seperti itu di baris terakhir file.

Kemudian di terminal jalankan perintah ini:

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

  • sudo apt-get update

Ini berhasil dalam kasus saya.


10

Saya melihat posting menarik dari Ikraider di sini yang memecahkan masalah saya: https://github.com/docker/docker/issues/22599

Instruksi situs web salah, inilah yang berfungsi di 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

Pengguna Linux Mint 20 Ulyana perlu mengubah "ulyana" menjadi "bionic" di

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

seperti ini:

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

4

Saya menghadapi masalah serupa di Linux mint apa yang saya lakukan adalah mengetahui versi Debian menggunakan,

$ cat /etc/debian_version buster/sid

lalu ganti versi Debian di

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

4

Peringatan: Gunakan langkah-langkah di bawah ini dengan risiko Anda sendiri. Anda mungkin menerima hasil yang berbeda seperti yang ditunjukkan di komentar. Harap berhati-hati dan miliki cadangan penuh sebelum melakukan ini.

Di bawah ini adalah daftar langkah-langkah yang digunakan untuk mengatasi masalah tersebut:

  1. Hapus Docker (ini tidak akan menghapus gambar, kontainer, volume, atau file konfigurasi yang disesuaikan):

    sudo apt-get purge buruh pelabuhan-mesin

  2. Hapus kunci Docker apt:

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. Hapus file docker.list:

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

  4. Hapus file cache apt secara manual:

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

  5. Hapus apt-transport-https dan ca-certificate :

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

  6. Bersihkan apt dan lakukan autoremove:

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

  7. Mulai ulang Ubuntu:

    sudo reboot

  8. Jalankan pembaruan apt-get:

    sudo apt-get update

  9. Instal apt-transport-https dan ca-certificate lagi:

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

  10. Tambahkan kunci apt:

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

Memang, ada banyak variabel dan hasil Anda mungkin berbeda. Namun, langkah-langkah ini mencakup area sebanyak mungkin untuk memastikan titik-titik masalah potensial dihapus sehingga kemungkinan berhasil lebih tinggi.

Perbarui 7/6/2017

Tampaknya versi Docker yang lebih baru menggunakan proses instalasi berbeda yang seharusnya menghilangkan banyak masalah ini. Pastikan untuk memeriksa https://docs.docker.com/engine/installation/linux/ubuntu/ .


Setelah menjalankan reboot, layar login saya muncul di Linux Mint
Sathishkumar Rakkiasamy

4
berjalan: sudo apt-get purge apt-transport-https ca-certificate adalah ide yang buruk, saya pikir saya baru saja mengacaukan OS saya: C
RicardoE

@ RicardoE, setelah menjalankan itu, apa yang terjadi dengan sistem Anda?
Daniel Eagle

1
Saya menggunakan linux mint, dan pada dasarnya mencopot semua barang kayu manis dan beberapa perangkat lunak / paket lain seperti google chrome
RicardoE

1
Saya menginstal ulang semuanya lagi dengan, memeriksa daftar di: /var/log/apt/history.log
RicardoE

3

Saya juga mengalami masalah serupa. Seseorang mungkin menemukan apa yang berhasil untuk saya bermanfaat.

Mesin menjalankan Ubuntu 16.04 dan memiliki Docker CE. Setelah melihat-lihat jawaban dan link yang disediakan di sini, terutama dari link dari situs Docker yang diberikan oleh Elliot Beach, saya membuka /etc/apt/sources.list dan memeriksanya.

File tersebut memiliki deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stabledan deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Karena yang kedua adalah yang dibutuhkan, saya hanya mengomentari yang pertama, menyimpan dokumen dan sekarang masalahnya sudah diperbaiki. Sebagai ujian, saya kembali ke dokumen yang sama, menghapus tanda komentar dan berlari sudo apt-get updatelagi. Masalah kembali ketika saya melakukan itu.

Jadi untuk rekap: tidak hanya saya memiliki nama distribusi Ubuntu induk seperti yang dinyatakan di situs Docker tetapi saya juga mengomentari baris yang masih berisi (lsb_release -cs).


Di Ubuntu 18.10 saya mengomentari baris ini: # deb [arch = amd64] download.docker.com/linux/ubuntu cosmic stable
Sergei G


1

Saya masih memiliki masalah yang sama. Tak satu pun dari jawaban di atas tampaknya menyelesaikannya. Saya memiliki ubuntu 16.04, dan saya mengikuti langkah-langkah yang dijelaskan di https://docs.docker.com/install/linux/docker-ce/ubuntu/

Saya curiga ini terkait dengan apt-getbug terkait https. Informasi yang dicetak apt-getagak menyesatkan.

Saya pikir itu Failed to fetch..juga bisa diterjemahkan sebagai:problem accessing resource from within an https connection

Bagaimana saya sampai pada kesimpulan ini:

Pertama-tama saya berada di belakang proxy perusahaan jadi saya telah menetapkan konfigurasi berikut:

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

Saya melakukan tes berikut dengan entri yang berbeda di sources.list

entri tes 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.

Kegagalan

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

Keberhasilan

entri tes 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.

Kegagalan


Dalam kasus di atas, url yang apt-get Failed to fetchdan juga Release file tersebut, sebenarnya dapat diakses dari browser/ wget/ curlmenggunakan konfigurasi proxy yang sama.
Fakta yang apt-getbekerja hanya dengan http reverse proxy url, menyiratkan bahwa ada beberapa masalah dalam mengakses sumber daya dari dalam koneksi https .
Saya tidak tahu apa masalah ini tetapi apt-getharus menunjukkan pesan yang lebih informatif ( aptbahkan kurang bertele-tele).

Catatan: kasus wiresharking 1 menunjukkan bahwa proxy CONNECTberhasil, dan tidak ada RST yang dikirim, tetapi tentu saja file tidak dapat dibaca.


0

Inilah yang berhasil untuk saya di 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

Pemeriksaan terbaik untuk masalah ini: (Jika Anda berada di belakang proxy), (diuji di ubuntu 18.04), (akan bekerja di ubuntu lain juga), (kebanyakan kesalahan di: https_proxy = "http://192.168.0.251:808/)

  1. Periksa file-file ini:

    #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. Tambahkan repo stabil buruh pelabuhan

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

    #sudo apt-get update
    
  4. Periksa Docker CE

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

    #sudo apt-get install docker-ce
    
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.