[Docker] 도커(Docker) 삭제 후 도커 네트워크 인터페이스를 삭제해야하는 경우 명령어(RHEL 8.8)
배경
도커 관련 의존성과 설정 파일들을 삭제한 후에도 도커 네트워크 인터페이스가 남아있는 경우가 있었습니다. 도커가 아직 설치되어있는 상태라면 docker network ls, docker network rm <인터페이스ID> 명령어를 통해 네트워크 인터페이스도 함께 삭제할 수 있지만, 도커를 사용할 수 없는 경우 도커 네트워크 삭제를 위해 사용 가능한 간단한 명령어를 소개합니다.
방법
- iproute 설치: yum install iproute
- 명령어 입력:
ip -o link show | awk '/02:42/ && /docker0|br-/ {print $2}' | sed 's/://g' | xargs -I {} ip link delete {}
명령어 설명
1) ip -o link show
- 현재 시스템의 네트워크 인터페이스 목록을 한 줄씩 출력합니다
- -o 옵션은 요약된 출력을 제공하여 파싱하기 쉽게 만듭니다
2) awk '/02:42/ && /docker0|br-/ {print $2}'
- 도커 네트워크 인터페이스의 MAC 주소는 보통 02:42로 시작하기때문에 이를 필터링합니다(해당하지 않는 경우 제외).
- docker0와 br-(브리지 네트워크 이름)을 포함하는 인터페이스만 보여줍니다.
- 필터 결과에서 두 번째 필드(인터페이스명)만 출력합니다.
3) sed 's/://g'
- 인터페이스 이름 뒤에 붙은 콜론(:)을 제거합니다(docker0: -> docker0).
4) xargs -I {} ip link delete {}
- xargs를 사용하여 각 인터페이스 이름을 ip link delete {} 명령어에 전달하여 네트워크 인터페이스를 삭제합니다.