개발을 하다보니 Docker가 설치된 기기에서 갑자기 네트웍이 안되는 현상이 생겼다.
확인해보니 개발서버 IP대역과 설치된 도커의 IP대역이 B Class까지 같아서 일어난 현상.
Docker는 거의 초보다 보니 여기저기 찾아보기 시작했다.
결국 몇 번을 시도해보다가 찾은 방법이 아래와 같다.
ifconfig -a 로 문제있는 docker ip 확인
root 계정으로 아래 명령어들을 실행한다.
$ ifconfig -a
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.255.0 broadcast 172.17.0.255
ether 02:42:8f:5e:66:66 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ systemctl stop docker // 도커 서비스 중지
$ iptables -t nat -F POSTROUTING // 라우팅 정보 삭제
$ ip link set dev docker0 down // 도커 인터페이스 중지, [docker0] 이 맞는지 위에서 확인
$ ip addr del 172.18.0.1/16 dev docker0 // 도커 인터페이스 IP를 삭제
/etc/docker/daemon.json 파일 생성
아래 내용 입력
{
"bip": "172.18.0.1/24", // docker ip 대역 변경, 변경 ip는 각자 상황에 맞게 변경
"fixed-cidr": "172.18.0.1/25", // docker ip 대역 변경
"mtu": 1500
}
$ systemctl start docker // 도커 서비스 시작
ifconfig -a 로 docker ip 확인
$ ifconfig -a
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.255.0 broadcast 172.18.0.255
ether 02:42:8f:5e:66:66 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
여기저기 찾아서 해결한 방법이라 상황에 따라 다를 수도 있음.