Docker 저장소에 Ubuntu에서 apt-get 업데이트 실행시 릴리스 파일이 없음


89

Ubuntu 16.10을 사용하고 있으며 여기에 있는 지침에 따라 Xenial 빌드를 사용하여 최근에 Docker (v1.12.4)를 설치 했습니다 . 컨테이너를 만드는 데 문제가 발생하지 않았으며 자동으로 다시 시작되는지 확인하는 등의 문제가 발생하지 않았습니다.

그러나 이제 apt-get update를 실행할 때마다 다음 오류 메시지가 표시됩니다.

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.

여기 에서 찾은 조언에 따라 문제를 해결하려고했지만 이 문제를 해결할 수없는 것 같습니다.

누구든지 전에 이것을 만났고 고쳤습니까? 그렇다면이를 해결하려면 무엇이 필요합니까?


1
이것이 도움이되는지 확인하십시오 -askubuntu.com/questions/768569/…
Rao

@Rao, 불행히도 이것은 문제를 해결하지 못합니다. 키, 소스 목록 항목을 제거하고 apt-get update를 다시 실행 한 다음 Docker 설치 단계를 반복 한 후에도 동일한 오류 메시지가 계속 나타납니다.
Daniel Eagle

@Rao, 나는 해결책을 알아 내고 대답을 추가했습니다. 그러나 당신이 언급 한 기사는 내 질문에 걸려 넘어지는 다른 사람들에게 도움이 될 수 있으므로 +1. 건배.
다니엘 이글

1
제 경우에는 아래 답변이 도움이되지 않았습니다. 내 문제는 https 트래픽을 프록시하지 않는 apt-cacher-ng를 사용하고 있다는 것입니다. github.com/moby/moby/issues/22599#issuecomment-404675734
jamshid

답변:


84

Linux Mint에서는 공식 지침이 작동하지 않았습니다. 로 가서로 /etc/apt/sources.list.d/additional-repositories.list변경 serena해야했습니다 xenial.


2
참고로, 어떤 이유로 도커 라인이 trusty있었고 serena그 파일에 다른 라인이있었습니다 . 어쩌면 나는 이와 같은 과정을 얼마 전에 거치려고했지만 잊어 버렸을 것이다. 여하튼, 나는 trusty줄 을 삭제해야만했다 . 그렇지 않으면 해결할 수없는 의존성에 대해 불평했다.
lobati

3
디렉토리 sources.list.d 참조에 감사드립니다. "sudo rm /etc/apt/sources.list.d/docker*"와 관련된 Ubuntu xenial 문제가 수정되었습니다. 이제 apt-get 업데이트가 마침내 작동합니다.
nine9five

2
데비안도 마찬가지입니다. "/etc/apt/sources.list.d/docker.list"파일에서 "debian 10 stable"을 "debian stretch stable"로 바꾸면 작동합니다.
peschanko

나는 내 것을 변경해야했다bionic
jpthesolver2

72

Linux Mint의 경우이 문제는 실제로 Docker 웹 사이트 에서 참조됩니다 .

참고 : 아래 lsb_release -cs하위 명령은 Ubuntu 배포의 이름 (예 : xenial. 때로는 Linux Mint와 같은 배포에서 $(lsb_release -cs)상위 Ubuntu 배포 로 변경해야 할 수도 있습니다 . 예를 들어 Linux Mint Rafaela를 사용하는 경우 trusty를 사용할 수 있습니다.

amd64 :

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

lsb_release -cs명령은 Docker에 준비된 패키지가없는 저장소를 제공하므로 xenial로 변경해야합니다.

Ubuntu 16.04 Xenial을 기반으로하는 Linux Mint 18 의 올바른 명령 은 다음과 같습니다.

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

1
제공 한 명령은 Docker 사이트에있는 명령과 동일합니다. 그러나 우분투 16.04에서는 작동하지 않습니다. 생성 된 항목 sources.list은 다음과 같습니다. deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable그러나 여전히 동일한 문제입니다. 누군가 Release내부를 찾을 수없는 이유를 설명해 주었으면합니다 https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/. 슬프다 : 우분투를 수년 동안 사용한 후에도 여전히 저장소 경로에서 작동하는 방식을 알 수 없습니다.
Marinos An

이것은 새로운 WLinux 배포판에서도 문제를 해결했습니다.
rainabba

22

엘리엇 비치가 맞습니다. 고마워요 엘리엇.

다음은 내 요점 의 코드입니다 .

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
xenial을 실행하지 않는 경우 이러한 명령을주의하여 실행하십시오. 이 명령은 더 안전합니다add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
spuder

일부 경우 (예 : Mint) 지원되는 릴리스가없는 lsb_release -cs반품 은 표시된대로 (또는 신뢰할 수있는) tara재정의 xenial하는 것이 유용한 해결 방법입니다.
Strixy

공식적으로 엘리엇 비치로 알려진 사용자는 앞으로 호전 침팬지로 언급 될 이동시키는 것입니다
호전적인 침팬지

귀하의 요지는 Kubuntu eoan의 "E : 패키지 'containerd.io'에 설치 후보가 없습니다"문제를 해결합니다. 어떤 사람들은 생체 공학으로 그것을 해결했지만 제니 얼에 대한 당신의 요점을 따라 저에게는 효과가 없었습니다. $(lsb_release -cs)완전히 지원되지 않기 때문에 사용할 때 문제가 발생합니다 . 다른 사람들은 4 개월 동안 문제없이 이러한 "잘못된 구성"해킹을 사용하여보고하고 있습니다 ( stackoverflow.com/questions/60274857/… )
Leamsi

17

공식 도커 문서에서도 제안한 바와 같습니다. 이것을 실행하십시오 :

  • sudo vi /etc/apt/sources.list

그런 다음 deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stable파일의 마지막 행에서 해당 항목 ( )을 제거 / 주석 처리 하십시오.

그런 다음 터미널에서 다음 명령을 실행하십시오.

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

  • sudo apt-get update

제 경우에는 효과가있었습니다.


10

내 문제를 해결 한 Ikraider의 흥미로운 게시물을 보았습니다 : https://github.com/docker/docker/issues/22599

웹 사이트 지침이 잘못되었습니다. 다음은 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

Linux Mint 20 Ulyana 사용자는 "ulyana""bionic" 으로 변경해야합니다 .

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

이렇게 :

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

4

Linux mint에서 비슷한 문제에 직면했습니다 .Debian 버전을 사용하여 발견했습니다.

$ cat /etc/debian_version buster/sid

그런 다음 데비안 버전을

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

4

경고 : 위험은 아래 단계를 따르십시오. 의견에 표시된대로 다른 결과를받을 수 있습니다. 이 작업을 수행하기 전에주의를 기울이고 전체 백업을 수행하십시오.

다음은 문제를 해결하는 데 사용되는 단계 목록입니다.

  1. Docker를 제거합니다 (이미지, 컨테이너, 볼륨 또는 사용자 지정 구성 파일은 삭제되지 않음).

    sudo apt-get purge docker-engine

  2. Docker apt 키를 제거하십시오.

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. docker.list 파일을 삭제합니다.

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

  4. apt 캐시 파일을 수동으로 삭제합니다.

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

  5. apt-transport-httpsca-certificates 삭제 :

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

  6. apt를 청소하고 자동 제거를 수행하십시오.

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

  7. Ubuntu를 재부팅합니다.

    sudo 재부팅

  8. apt-get update를 실행합니다.

    sudo apt-get 업데이트

  9. apt-transport-https 및 ca-certificates를 다시 설치합니다.

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

  10. 적절한 키를 추가합니다.

> sudo apt-key adv \
       --keyserver hkp://ha.pool.sks-keyservers.net:80 \
       --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. docker.list 파일을 다시 추가하십시오.
> echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" |
sudo tee /etc/apt/sources.list.d/docker.list
  1. apt-get update를 실행합니다.
> sudo apt-get update
  1. Docker 설치 :
> sudo apt-get install docker-engine

물론 변수가 많고 결과가 다를 수 있습니다. 그러나 이러한 단계는 가능한 한 많은 영역을 포함하여 잠재적 인 문제 지점을 제거하여 성공 가능성을 높입니다.

2017 년 7 월 6 일 업데이트

최신 버전의 Docker는 이러한 많은 문제를 제거해야하는 다른 설치 프로세스를 사용하는 것으로 보입니다. https://docs.docker.com/engine/installation/linux/ubuntu/ 를 확인 하십시오 .


내 로그인 화면를 재부팅 실행 한 후 리눅스 민트에 표시됩니다
Sathishkumar Rakkiasamy

3
실행 중 : sudo apt-get purge apt-transport-https ca-certificates는 끔찍한 아이디어입니다. 방금 내 OS를 망친 것 같습니다 .C
RicardoE

@RicardoE, 실행 후 시스템에서 무슨 일이 일어나고 있습니까?
Daniel Eagle

1
나는

1
모든 것을 다시 설치하고 목록을 확인합니다. /var/log/apt/history.log
RicardoE

3

나는 또한 비슷한 문제가 있었다. 누군가 나를 위해 일한 것이 도움이 될 수 있습니다.

머신이 Ubuntu 16.04를 실행하고 있으며 Docker CE가 있습니다. 여기에 제공된 답변과 링크, 특히 Elliot Beach에서 제공하는 Docker 웹 사이트의 링크를 살펴본 후 /etc/apt/sources.list를 열고 조사했습니다.

파일에는 deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stabledeb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

두 번째가 필요한 것이기 때문에 첫 번째는 간단히 주석 처리하고 문서를 저장하고 이제 문제가 해결되었습니다. 테스트로 동일한 문서로 돌아가서 주석 기호를 제거하고 sudo apt-get update다시 실행 했습니다. 내가 그렇게했을 때 문제가 돌아 왔습니다.

요약하자면, Docker 웹 사이트에 명시된대로 부모 Ubuntu 배포 이름이있을뿐만 아니라 (lsb_release -cs)가 포함 된 줄에 주석을 달았습니다.


우분투 18.10에서 나는 다음 줄을 주석 처리했다 : # deb [arch = amd64] download.docker.com/linux/ubuntu cosmic stable
Sergei G


1

나는 여전히 같은 문제가 있습니다. 위의 답변 중 어느 것도 해결되지 않는 것 같습니다. 우분투 16.04가 있고 https://docs.docker.com/install/linux/docker-ce/ubuntu/에 설명 된 단계를 따릅니다.

apt-gethttps 관련 버그와 관련이 있다고 생각합니다 . 인쇄되는 정보 apt-get는 오해의 소지가 있습니다.

다음 Failed to fetch..과 같이 번역 될 수도 있습니다.problem accessing resource from within an https connection

이 결론에 도달 한 방법 :

우선 저는 회사 프록시 뒤에 있으므로 다음 구성을 설정했습니다.

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

다른 항목으로 다음 테스트를 수행했습니다. sources.list

테스트 항목 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.

실패

테스트 항목 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

성공

테스트 항목 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.

실패


위의 경우 apt-get Failed to fetchRelease 파일이 실제로 동일한 프록시 구성을 사용하여 browser/ wget/ 에서 액세스 할 수 있는 URL입니다 curl. http 역방향 프록시 URL에서만 작동
한다는 사실 은 https 연결 내에서 리소스에 액세스apt-get 하는 데 문제 가 있음을 의미 합니다 .
이 문제가 무엇인지 모르지만 apt-get더 많은 정보를 제공하는 메시지를 표시해야합니다 ( apt훨씬 덜 장황함).

참고 : wiresharking 사례 1은 프록시 CONNECT가 성공했고 RST가 전송되지 않았 음을 보여 주 었지만 물론 파일을 읽을 수 없었습니다.


0

이것이 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

이 문제에 대한 최선의 확인 : (프록시 뒤에있는 경우), (우분투 18.04에서 테스트 됨), (다른 우분투에서도 작동 함), (대부분 오류 : https_proxy = "http://192.168.0.251:808/)

  1. 다음 파일을 확인하십시오.

    #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. Docker 안정적인 저장소 추가

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

    #sudo apt-get update
    
  4. Docker CE 확인

    #apt-cache policy docker-ce
    
  5. Docker 설치

    #sudo apt-get install docker-ce
    
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.