본문 바로가기

KnowHow/etc

VMware 에서 Docker Ubuntu 사용시 Temporary failure resolving 'deb.debian.org' 와 같은 에러가 날 경우

VMware 에서 Docker와 Ubuntu 를 사용할때 아래와 같은 에러를 확인 하실 수 있는데요. ( Temporary failure resolving 'deb.debian.org' ) 

* 에러는 아래와 같이 패키지 양에 따라 다르지만 원인은 같습니다. 


Step 3/14 : RUN apt-get update && apt-get install -y                    libmcrypt-dev                   libxml2-dev  libssl-dev                       zlib1g-dev
 ---> Running in e858e186cfac
Err:1 http://security.debian.org/debian-security stretch/updates InRelease
  Temporary failure resolving 'security.debian.org'
Err:2 http://deb.debian.org/debian stretch InRelease
  Temporary failure resolving 'deb.debian.org'
Err:3 http://deb.debian.org/debian stretch-updates InRelease
  Temporary failure resolving 'deb.debian.org'
Reading package lists...
W: Failed to fetch http://deb.debian.org/debian/dists/stretch/InRelease  Temporary failure resolving 'deb.debian.org'
W: Failed to fetch http://security.debian.org/debian-security/dists/stretch/updates/InRelease  Temporary failure resolving 'security.debian.org'
W: Failed to fetch http://deb.debian.org/debian/dists/stretch-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...
E: Unable to locate package libmcrypt-dev
E: Unable to locate package libxml2-dev
E: Unable to locate package libssl-dev
E: Unable to locate package zlib1g-dev



일단 단단히 원인을 알려드리면 dns 세팅이 되지 않아 주소를 제대로 찾지 못하여 생기는 원인인데요. ( 보통은 괜찮은데 vmware 와 함께 하면 에러가 ... )


일단 해결 방법은 daemon.json 파일을 세팅 해주시면 됩니다.



1. /etc/resolv.conf 확인하기


 우선 /etc/resolv.conf 를 cat 혹은 vim 으로 확인해 주도록 합니다.


$ cat /etc/resolv.conf

혹은

$ vim /etc/resolv.conf


위와 같은 방법으로 파일을 확인 해보시면 


nameserver 127.X.Y.Z
search example

위와 같이 내용을 보실 수 있으실 겁니다. 이제 확인 하신 내용으로 daemon.json 파일을 작성하실 차례 입니다.




2. daemon.json 파일 작성하기


위의 내용을 아래와 같은 폼으로 /etc/docker/daemon.json 입력 하여 주시기 바랍니다. * 혹은 그냥 dns 부분에 8.8.8.8 을 적어주셔도 잘 됩니다. 


$ vim /etc/docker/daemon.json

아래의 형태로 위의 정보 입력

{
  "dns": ["127.X.Y.Z"],
  "dns-search": ["example"]
}


3. Docker 재시작 하기


마지막으로 설정 값을 저장하기 위해 아래의 명령어로 Docker 를 재시작 하여 주시기 바랍니다.


$ sudo systemctl daemon-reload
$ sudo systemctl restart docker


이제 다시 docker 파일을 사용 빌드 하시면 정상 적으로 빌드 되는 것을 확인하실 수 있으실 것입니다.


즐거운 개발 되시기 바랍니다 :D