사용 중인 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
...
이런 느낌?
아무튼 해결 글을 찾아보니 비슷한 문제로 고민하는 유저들이 꽤 있었는 듯
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는 컨테이너를 셋업하기 전에 Firewalld에 기존 규칙이 없는지 확인하려고 한다. 만약에 있으면 제거하라고 한다. 그러나 만약 어떤 규칙도 없다면 Firewalld는 그 사실을 기록한다.'
고 한다.. 결국 이 버그는 무시해도 된다는 말이다.
음, 일단 이 글을 믿기로 했다. 괜히 잘 돌아가던 서버에 다른 이슈들을 생성하기 싫어서 말이다. 다른 해결 방법을 찾으면 업데이트 해야겠다.