이것이 도커 빌드 중 "일시적인 오류 해결"문제를 처리한 방법입니다.

11109 단어 issueubuntudnsdocker
신사숙녀 여러분, 반갑습니다.

이 기사를 찾았다면 다음과 같은 불쾌한 오류를 발견했을 가능성이 큽니다.

Step 3/8 : RUN apt-get update && apt-get install gcc python3-dev mariadb-client mariadb-server -y
 ---> Running in 7adba5657671
Err:1 http://deb.debian.org/debian buster InRelease
  Temporary failure resolving 'deb.debian.org'
Err:2 http://security.debian.org/debian-security buster/updates InRelease
  Temporary failure resolving 'security.debian.org'
Err:3 http://deb.debian.org/debian buster-updates InRelease
  Temporary failure resolving 'deb.debian.org'
Reading package lists...
W: Failed to fetch http://deb.debian.org/debian/dists/buster/InRelease  Temporary failure resolving 'deb.debian.org'
W: Failed to fetch http://security.debian.org/debian-security/dists/buster/updates/InRelease  Temporary failure resolving 'security.debian.org'
W: Failed to fetch http://deb.debian.org/debian/dists/buster-updates/InRelease  Temporary failure resolving 'deb.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
Package python3-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'python3-dev' has no installation candidate
E: Unable to locate package mariadb-client
E: Unable to locate package mariadb-server
ERROR: Service 'process-test-results' failed to build : The command '/bin/sh -c apt-get update && apt-get install gcc python3-dev mariadb-client mariadb-server -y' returned a non-zero code: 100


docker 빌드 또는 docker-compose 빌드 중에 팝업되었을 가능성이 큽니다.

알아 내려고 노력했지만 Google과 StackOverFlow는 많은 작업을 제공하지 않았습니다. 나도 알아, 내가 거기 가봤어.

다음 명령을 실행해 보겠습니다.

 cat /etc/resolv.conf


그것이 당신이 가진 것이라면 :

# Please ignore all the lines that start with a hash symbol
nameserver 127.0.0.53


당신은 바로 이곳에 왔습니다. 분명히 Docker 및 DNS 172.0.0.53here.과 관련된 공개 버그가 있습니다.

systemd와 함께 사전 설치된 Ubuntu 18.04/20.04를 사용하고 있을 가능성이 높으며 여기에는 systemd-resolved도 포함되어 있으므로 이름 서버 127.0.0.53으로 설정됩니다.

기본적으로 빌드하는 동안 도커 컨테이너는 해당 DNS를 가져와서 컨테이너 내부에서 사용하려고 합니다. 하지만 그럴 수 없습니다.



이제 문제가 무엇인지 알게 되면 마침내 문제를 해결할 수 있습니다.

시작하기 전에 무엇을 하고 있는지 확인하십시오. DNS를 엉망으로 만들면 인터넷 액세스 없이 호스트를 떠날 수 있어 정말 불편할 수 있습니다.

어쨌든 그런 일이 발생하면/etc/resolv.conf를 확인하고 다음 행이 있는지 확인하는 것이 좋습니다.

nameserver 8.8.8.8
nameserver 8.8.4.4


  • systemd-resolved 중지 및 비활성화

  • sudo systemctl disable systemd-resolved
    sudo systemctl stop systemd-resolved
    


  • systemd-resolved를 비활성화된 것으로 인식하도록 Network Manager를 설정합니다.

  • vim /etc/NetworkManager/NetworkManager.conf
    # And then change dns to default. ex:
    # dns=default
    


  • 이전/etc/resolv.conf 파일을 제거합니다.

  • rm /etc/resolv.conf
    


  • 네트워크 관리자를 다시 시작합니다.

  • sudo systemctl restart NetworkManager
    


  • 직접 수정할 수 없으므로 dnsmasq를 사용하여 Google의 DNS 서버를/etc/resolv.conf에 추가합니다.

  • sudo vim /etc/dnsmasq.conf
    # Add to the end of the file:
    server=8.8.8.8
    server=8.8.4.4
    

    좋은 웹페이지 즐겨찾기