본문 바로가기
DevOps/Docker

CentOS8에서 Dockerfile build시 DNS Not Resolving under Network 에러 해결: 방화벽 설정 바꾸기

by 돈코츠라멘 2020. 8. 8.

CentOS8에서 처음 docker, docker-compose를 설치한 후 Dockerfile을 빌드할 때 DNS 어쩌고 에러가 발생한다.

나 같은 경우는 Dockerfile에서 아래 구문을 빌드할 때 자꾸 에러가 발생했었는데, 처음에는 네트워크 문제인 줄도 모르고 이 구문에 에러가 있는 줄 알고 한참을 헤맸다. 다른 서버에서는 잘만 빌드되던 게 왜 안 되는 거야(ㅠㅠ) 하면서!

RUN apt-get -y update && apt-get install -y \
    openjdk-8-jdk
Err:1 http://archive.ubuntu.com/ubuntu xenial InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:3 http://archive.ubuntu.com/ubuntu xenial-security InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Reading package lists... Done        
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-updates/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-security/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.

원인은 CentOS8부터는 firewalld의 default 설정이 nftables로 바뀐 것이었다. 따라서 이 설정을 이전 버전처럼 iptables로 바꾸어 주어야 정상적으로 동작한다.

(참고) RHEL 8.0.0 RELEASE

firewalld uses nftables by default
With this update, the nftables filtering subsystem is the default firewall backend for the firewalld daemon. To change the backend, use the FirewallBackend option in the /etc/firewalld/firewalld.conf file.

firewalld 설정 변경은 firewalld.conf 설정파일의 FirewallBackend 값을 변경하면 된다.

$ sudo vi /etc/firewalld/firewalld.conf
FirewallBackend=nftables

설정을

FirewallBackend=iptables

로 변경한다.




reference

'DevOps > Docker' 카테고리의 다른 글

Docker Container Networking 간단 정리  (0) 2019.10.15

댓글