Docker Repository không có tệp phát hành khi chạy bản cập nhật apt-get trên Ubuntu


91

Tôi đang sử dụng Ubuntu 16.10 và gần đây đã cài đặt Docker (v1.12.4) bằng cách sử dụng bản dựng Xenial bằng cách làm theo các hướng dẫn được tìm thấy tại đây . Tôi chưa gặp bất kỳ sự cố nào khi tạo vùng chứa, đảm bảo chúng tự động khởi động lại, v.v.

Tuy nhiên, bây giờ mỗi khi tôi chạy bản cập nhật apt-get, tôi nhận được thông báo lỗi sau:

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.

Tôi đã cố gắng khắc phục sự cố bằng cách làm theo lời khuyên được tìm thấy ở đây và dường như không thể giải quyết được vấn đề này.

Có ai gặp phải điều này trước đây và sửa nó không? Nếu vậy, những gì là cần thiết để giải quyết điều này?


1
Vui lòng xem điều này có giúp ích được không - askubuntu.com/questions/768569/…
Rao

@Rao, rất tiếc điều này không giải quyết được vấn đề. Tôi vẫn nhận được thông báo lỗi tương tự sau khi xóa khóa, mục nhập danh sách nguồn, chạy lại bản cập nhật apt-get và sau đó lặp lại các bước cài đặt Docker.
Daniel Eagle

@Rao, tôi đã tìm ra giải pháp và thêm câu trả lời. Tuy nhiên, bài viết bạn đề cập có thể có lợi cho những người khác tình cờ gặp câu hỏi của tôi nên +1. Chúc mừng.
Daniel Eagle

1
Trong trường hợp của tôi, các câu trả lời dưới đây không giúp được gì. Vấn đề của tôi là tôi đang sử dụng apt-cacher-ng không ủy quyền lưu lượng truy cập https. github.com/moby/moby/issues/22599#issuecomment-404675734
jamhid

Câu trả lời:


85

Trên Linux Mint, các hướng dẫn chính thức không hoạt động với tôi. Tôi đã phải đi vào /etc/apt/sources.list.d/additional-repositories.listvà thay đổi serenathành xenial.


2
Chỉ cần một ghi chú, vì lý do nào đó có một dòng docker với trustyvà dòng khác có serenatrong tệp đó cho tôi. Có lẽ tôi đã cố gắng trải qua quá trình tương tự một thời gian trước đó và quên mất nó. Bằng mọi giá, tôi phải xóa trustydòng, nếu không nó phàn nàn về các phụ thuộc không thể giải quyết.
lobati

3
Cảm ơn đã tham khảo thư mục sources.list.d. Đã khắc phục sự cố Ubuntu xenial với "sudo rm /etc/apt/sources.list.d/docker*". Giờ đây, bản cập nhật apt-get cuối cùng cũng hoạt động.
nine9five

2
Tương tự đối với Debian: thay "debian 10 ổn định" thành "debian căng ổn định" trong tệp "/etc/apt/sources.list.d/docker.list" và nó sẽ hoạt động.
peschanko

Tôi đã phải đổi của tôi thànhbionic
jpthesolver2

73

Đối với Linux Mint, vấn đề này thực sự được tham chiếu trong trang web Docker :

Lưu ý: Lệnh lsb_release -csphụ bên dưới trả về tên của bản phân phối Ubuntu của bạn, chẳng hạn như xenial. Đôi khi, trong một bản phân phối như Linux Mint, bạn có thể phải thay đổi $(lsb_release -cs)sang bản phân phối Ubuntu chính của mình. Ví dụ, nếu bạn đang sử dụng Linux Mint Rafaela, bạn có thể sử dụng Trusty.

amd64:

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

Các lsb_release -cslệnh đưa ra một kho lưu trữ mà Docker không có gói sẵn - bạn phải thay đổi nó để xenial.

Lệnh chính xác cho Linux Mint 18 dựa trên Ubuntu 16.04 Xenial

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

1
Lệnh bạn đã cung cấp giống với lệnh tồn tại trên trang web docker. Tuy nhiên, nó không hoạt động đối với tôi trên ubuntu 16.04. Mục nhập được tạo ra sources.listlà: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stableNhưng vẫn có cùng một vấn đề. Tôi ước ai đó có thể giải thích tại sao nó không thể tìm thấy Releasebên trong https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/. Buồn: Sau rất nhiều năm sử dụng ubuntu, tôi vẫn không thể tìm ra cách mọi thứ hoạt động với các đường dẫn kho lưu trữ.
Marinos An

Điều này đã giải quyết được vấn đề của tôi khi làm mọi thứ chuyển động trên bản phân phối WLinux mới.
rainabba

22

Bãi biển Elliot là chính xác. Cảm ơn Elliot.

Đây là mã từ ý chính của tôi .

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
Cẩn thận chạy các lệnh này nếu không chạy xenial. Lệnh này sẽ an toàn hơnadd-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
spuder

Trong một số trường hợp (ví dụ: Mint), lsb_release -cstrả về tarakhông có bản phát hành được hỗ trợ nên việc ghi đè cụ thể thành xenialnhư được hiển thị (hoặc đáng tin cậy) là một giải pháp hữu ích.
Strixy

Người sử dụng chính thức được gọi là Bãi biển Elliott sẽ di chuyển về phía trước được gọi là hiếu chiến Chimpanzee
hiếu chiến Chimpanzee

Ý chính của bạn khắc phục sự cố "E: Package 'containerd.io' không có ứng cử viên cài đặt nào" với eoan Kubuntu. Một số người đã giải quyết nó bằng bionic, nhưng nó không hiệu quả với tôi, theo ý bạn với xenial đã làm được. Vấn đề phát sinh khi bạn sử dụng $(lsb_release -cs)vì nó không được hỗ trợ đầy đủ. Những người khác báo cáo việc sử dụng một bản hack "cấu hình sai" như vậy mà không có bất kỳ vấn đề nào trong 4 tháng và tiếp tục ( stackoverflow.com/questions/60274857/… )
Leamsi

17

Như được đề xuất trong tài liệu docker chính thức. Hãy thử chạy cái này:

  • sudo vi /etc/apt/sources.list

Sau đó xóa / bình luận bất kỳ ( deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stable) mục nhập như vậy ở những dòng cuối cùng của tệp.

Sau đó, trong terminal, hãy chạy lệnh này:

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

  • sudo apt-get update

Nó đã hoạt động trong trường hợp của tôi.


10

Tôi thấy một bài đăng thú vị từ Ikraider ở đây đã giải quyết được vấn đề của tôi: https://github.com/docker/docker/issues/22599

Hướng dẫn trang web sai, đây là những gì hoạt động trong 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

Người dùng Linux Mint 20 Ulyana cần thay đổi "ulyana" thành "bionic" trong

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

như vậy:

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

4

Tôi đã gặp sự cố tương tự trên Linux mint, những gì tôi đã làm là phát hiện ra phiên bản Debian đang sử dụng,

$ cat /etc/debian_version buster/sid

sau đó thay thế phiên bản Debian trong

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

4

Cảnh báo: Sử dụng các bước dưới đây và tự chịu rủi ro. Bạn có thể nhận được các kết quả khác nhau như được chỉ ra trong các nhận xét. Hãy thận trọng và có một bản sao lưu đầy đủ trước khi thực hiện việc này.

Dưới đây là danh sách các bước được sử dụng để giải quyết vấn đề:

  1. Xóa Docker (thao tác này sẽ không xóa hình ảnh, vùng chứa, ổ đĩa hoặc tệp cấu hình tùy chỉnh):

    sudo apt-get purge docker-engine

  2. Xóa khóa apt Docker:

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. Xóa tệp docker.list:

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

  4. Xóa thủ công các tệp bộ nhớ cache apt:

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

  5. Xóa chứng chỉ apt-transport-httpsca- :

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

  6. Làm sạch apt và thực hiện tự động khôi phục:

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

  7. Khởi động lại Ubuntu:

    khởi động lại sudo

  8. Chạy cập nhật apt-get:

    sudo apt-get cập nhật

  9. Cài đặt lại apt-transport-https và ca-certificate:

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

  10. Thêm khóa apt:

> sudo apt-key adv \
       --keyserver hkp://ha.pool.sks-keyservers.net:80 \
       --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. Thêm lại tệp docker.list:
> echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" |
sudo tee /etc/apt/sources.list.d/docker.list
  1. Chạy cập nhật apt-get:
> sudo apt-get update
  1. Cài đặt Docker:
> sudo apt-get install docker-engine

Được, có rất nhiều biến số và kết quả của bạn có thể khác nhau. Tuy nhiên, các bước này bao gồm càng nhiều khu vực càng tốt để đảm bảo các điểm có vấn đề tiềm ẩn được loại bỏ để khả năng thành công cao hơn.

Cập nhật 7/6/2017

Có vẻ như các phiên bản Docker mới hơn đang sử dụng một quy trình cài đặt khác nên loại bỏ nhiều vấn đề này. Hãy nhớ xem https://docs.docker.com/engine/installation/linux/ubuntu/ .


Sau khi chạy khởi động lại màn hình đăng nhập của tôi được hiển thị trong Linux Mint
Sathishkumar Rakkiasamy

3
chạy: sudo apt-get thanh trừng apt-vận chuyển-https ca-chứng chỉ là một ý tưởng khủng khiếp, tôi nghĩ rằng tôi chỉ hơi say lên hệ điều hành của tôi: C
RicardoE

@RicardoE, sau khi chạy, điều gì đang xảy ra với hệ thống của bạn?
Daniel Eagle

1
Tôi đang sử dụng bạc hà linux và về cơ bản nó đã gỡ cài đặt tất cả nội dung về quế và một số softare / gói khác như google chrome
RicardoE

1
Tôi đang cài đặt lại mọi thứ với, kiểm tra danh sách trong: /var/log/apt/history.log
RicardoE

3

Tôi cũng đã có một vấn đề tương tự. Ai đó có thể thấy những gì hữu ích cho tôi.

Máy đang chạy Ubuntu 16.04 và có Docker CE. Sau khi xem qua các câu trả lời và liên kết được cung cấp ở đây, đặc biệt là từ liên kết từ trang web Docker do Elliot Beach đưa ra, tôi đã mở /etc/apt/sources.list của mình và kiểm tra nó.

Tệp có cả hai deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stabledeb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Vì cái thứ hai là thứ cần thiết, tôi chỉ cần bình luận cái đầu tiên, lưu tài liệu và bây giờ sự cố đã được khắc phục. Để kiểm tra, tôi quay lại tài liệu cũ, bỏ dấu nhận xét và chạy sudo apt-get updatelại. Vấn đề quay trở lại khi tôi làm điều đó.

Vì vậy, để tóm tắt lại: tôi không chỉ có tên bản phân phối Ubuntu chính của mình như đã nêu trên trang web Docker mà tôi còn nhận xét dòng vẫn chứa (lsb_release -cs).


Trên Ubuntu 18.10, tôi đã nhận xét dòng này: # deb [Arch = amd64] download.docker.com/linux/ubuntu cosmic ổn định
Sergei G


1

Tôi vẫn có cùng một vấn đề. Không có câu trả lời nào ở trên dường như giải quyết được nó. Tôi có ubuntu 16.04 và tôi làm theo các bước được mô tả trong https://docs.docker.com/install/linux/docker-ce/ubuntu/

Tôi nghi ngờ nó có liên quan đến một apt-getlỗi liên quan đến https. Thông tin được in bởi apt-getlà loại gây hiểu lầm.

Tôi nghĩ điều đó Failed to fetch..cũng có thể được dịch là:problem accessing resource from within an https connection

Làm thế nào tôi đi đến kết luận này:

Trước hết, tôi đứng sau proxy công ty nên tôi đã đặt cấu hình sau:

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

Tôi đã thực hiện các bài kiểm tra sau với các mục nhập khác nhau trong sources.list

mục kiểm tra 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.

Sự thất bại

bài kiểm tra đầu vào 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

Sự thành công

mục kiểm tra 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.

Sự thất bại


Trong các trường hợp trên, url mà apt-get Failed to fetchvà cả Release tệp, thực sự có thể truy cập được từ browser/ wget/ curlbằng cách sử dụng cùng một cấu hình proxy.
Thực tế apt-getchỉ hoạt động với url proxy ngược http, ngụ ý rằng có một số vấn đề khi truy cập tài nguyên từ bên trong kết nối https .
Tôi không biết vấn đề này là gì nhưng apt-getsẽ hiển thị một thông báo nhiều thông tin hơn ( aptthậm chí ít dài dòng hơn).

Lưu ý: trường hợp 1 wireharking cho thấy proxy CONNECTđã thành công và không có RST nào được gửi đi, nhưng tất nhiên không thể đọc tệp.


0

Đây là những gì làm việc cho tôi trên 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

Kiểm tra tốt nhất cho vấn đề này: (Nếu bạn đang sử dụng proxy), (đã thử nghiệm trên ubuntu 18.04), (cũng sẽ hoạt động trên ubuntu khác), (chủ yếu là lỗi trong: https_proxy = "http://192.168.0.251:808/)

  1. Kiểm tra các tệp này:

    #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. Thêm kho lưu trữ ổn định của docker

    #sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 
    
  3. Chạy cập nhật apt-get:

    #sudo apt-get update
    
  4. Kiểm tra Docker CE

    #apt-cache policy docker-ce
    
  5. cài đặt Docker

    #sudo apt-get install docker-ce
    
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.