사용 중인 OS는 CentOS 7.4

도커 버전은 다음과 같다.

[dwpark@daun-lab pipeline]$ docker --version
Docker version 19.03.1, build 74b1e89

글 제목에 경고 문구를 간단하게 썼지만, 실제 모든 경고 메시지는 굉장히 길다. 조금 더 출력해보면 대략적으로...

WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -n -L DOCKER' failed: iptables: No chain/target/match by that name.
WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -n -L DOCKER' failed: iptables: No chain/target/match by that name.
WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -n -L DOCKER-ISOLATION-STAGE-1' failed: iptables: No chain/target/match by that name.
WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -n -L DOCKER-ISOLATION-STAGE-2' failed: iptables: No chain/target/match by that name.
WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C DOCKER-ISOLATION-STAGE-1 -j RETURN' failed: iptables: Bad rule (does a matching rule exist in that chain?).
WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C DOCKER-ISOLATION-STAGE-2 -j RETURN' failed: iptables: Bad rule (does a matching rule exist in that chain?).
WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C POSTROUTING -s 172.20.0.0/16 ! -o br-05c2b5c009f9 -j MASQUERADE' failed: iptables: No chain/target/match by that
...

이런 느낌?

 

아무튼 해결 글을 찾아보니 비슷한 문제로 고민하는 유저들이 꽤 있었는 듯

링크

 

Docker vs. firewalld on CentOS 7 · Issue #16137 · moby/moby

Hi. In https://docs.docker.com/v1.6/installation/centos/#installing-docker-centos-7 it is documented that docker can be run together with firewalld if you respect the order in which services are st...

github.com

CentOS7을 설치하면 자동으로 설치되어있는 Firewalld 서비스와 Docker와의 버그인듯 한데, 위 글을 살펴보니,

이 버그는 Redhat에서 발생한 문제였고, CentOS는 Redhat을 상속(?)받기 때문에 이 문제를 안고 있었다는 것이다. 이 문제에 대해 Redhat과 CentOS는 업데이트 한 것으로 보이는데, 이 의 마지막 코멘트를 참고하라고 한다.

그래서 실제 이 문제의 버그가 픽스된 버전이 무엇인지 물어보는 유저들의 대답은 CentOS 7.4.1708이라고 한다.

나도 7.4.1708에서 테스트 중인데...?

VM에 새로 CentOS 7.4를 설치해서 다시 테스트보았는데도 같은 문제가 발생했다. 결국 왜인지 알 수 없었다...

아무튼, 또 다른 해결 방법으로 systemctl mask 명령어를 사용해서 firewalld 서비스를 내리고 iptables 서비스를 설치해서 환경 설정을 하면 된다고 한다. 하지만 Firewalld 서비스를 내려야한다는 점이 마음에 들지 않아서 시도해 보진 않았다. iptables는 불편함

조금 더 해결 방법을 찾는 도중 다음 글을 발견했다.

링크

 

Docker startup on firewalld Warning: COMMAND_FAILED: No chain/target/match by that name

Applicable to: Plesk Onyx for Linux Symptoms Docker is installed on the Plesk server with `firewalld` enabled The following Docker-related messages are found in /var/log/firewalld: CONFIG_TEXT: W...

support.plesk.com

이 글에 의하면,

'Docker는 컨테이너를 셋업하기 전에 Firewalld에 기존 규칙이 없는지 확인하려고 한다. 만약에 있으면 제거하라고 한다. 그러나 만약 어떤 규칙도 없다면 Firewalld는 그 사실을 기록한다.'

고 한다.. 결국 이 버그는 무시해도 된다는 말이다.

음, 일단 이 글을 믿기로 했다. 괜히 잘 돌아가던 서버에 다른 이슈들을 생성하기 싫어서 말이다. 다른 해결 방법을 찾으면 업데이트 해야겠다.