본문 바로가기
Docker/Error

iptables failed: ~ No chain/target/match by that name.

by ahfmrjttb 2020. 9. 23.

Docker Container로 jupyter를 띄우려고 햇는데 아래와 같은 에러가 발생했다.

driver가 endpoint에서 외부 연결을 프로그래밍하는 데 실패했고 iptables도 실패했으며 "No chain/target/match by the name", 즉, 이름에 따른 chain/target/match가 없다고 나와있다. 이 에러는 iptables에 Docker Chain 설정이 없어져서 발생하는 에러이다.

 

Docker는 실행(start) 시, iptables 안에 Docker Chain을 만드는데 다른 시스템에 의해 iptables에 변경이 발생할 경우 Docker에서 위와 같은 에러를 띄운다. 실제로 필자의 경우 firewalld가 stop된 상태에서 Docker를 실행(start)하였고 Docker가 실행되고 있는 상태에서 firewalld를 켜야 하는 상황이 생겨 firewalld를 start했더니 위와 같이 에러가 발생했다.

 

참고 : 반대의 경우로 firewalld가 start된 상태에서 Docker를 실행했는데 Docker가 실행되고 있는 상태에서 firewalld를 stop해도 위와 같은 에러가 발생함

 

에러가 나는 이유를 잘 이해했다면 해결법은 간단하다. Docker를 다시 시작해주면 된다. 왜냐하면, 이 에러는 결국 다른 시스템(예를 들어, firewalld restart)에 의한 iptables 변경으로 인해 Docker Chain 설정이 없어졌기 때문에 발생하는 에러이므로 Docker를 재시작해서 Docker Chain을 다시 만들어주면 되기 때문이다.

 

$ systemctl stop docker

$ systemctl restart docker

꼭 stop을 안 해줘도 된다. 그냥 restart만 해줘도 해결이 된다(직접 해봤습니다!). 그래도 필자는 stop하고 나서 restart했다.

 

그 다음 아까 입력했던 jupyter 명령어를 다시 입력해 jupyter 컨테이너를 띄운다. 하지만, 이미 같은 이름(data_jupyter)의 컨테이너가 사용중이라는 에러를 발생시킨다.

 

아까 에러가 발생하긴 했지만 컨테이너가 만들어졌나보다. 실제로 docker ps -a로 확인해보면

data_jupyter라는 이름의 컨테이너가 생성되어 있는 것을 확인할 수 있다(사실 맨 처음 그림 보면 빨간색 네모 위에 컨테이너 ID가 할당된 것을 볼 수 있음). 지금 이름이 겹쳐서 에러가 나고 있는 것이므로 jupyter 컨테이너의 이름을 다르게 해서 생성해도 되지만 어차피 에러난 컨테이너이므로 지우고 다시 띄워보겠다.

 

필자가 에러가 발생한 컨테이너라고 말하는 이유는 -p 옵션으로 분명 포트 지정을 해줬는데 오른쪽을 보면 포트 지정이 되어 있지 않기 때문이다.

 

$ docker stop [컨테이너 ID]

$ docker rm [컨테이너 ID]

실행중인 컨테이너는 바로 rm할 수 없고 stop을 먼저 한 후에 rm을 해줘야 한다. docker stop과 docker rm에 대해 간단히 설명하면, docker stop은 컨테이너를 삭제하는 것이 아니라 중지하는 것이다. 또한 삭제가 아닌 중지를 한 것이기 때문에 다시 docker (re)start하면 전에 했던 작업을 이어서 할 수 있다.

 

반면, docker rm을 하면 컨테이너 자체가 삭제되는 것이다. 즉, 컨테이너에서 실행하고 작업했던 모든 내용이 삭제되고 컨테이너가 삭제되었기 때문에 docker (re)start를 할 수도 없다.

 

이제 다시 jupyter 컨테이너를 실행시켜보자. 별다른 에러없이 잘 실행된 것을 확인할 수 있고 좀 더 확실한 방법을 위해 docker ps로 확인해보면

컨테이너가 지정한 포트와 함께 잘 생성된 것을 확인할 수 있다.

 

 

 

참고 사이트 :

    - https://0902.tistory.com/4

    - https://sallyhan82.tistory.com/12

 

댓글