변경 방법
Docker IP 변경 관련 MongoDB 컨테이너 서비스를 기준으로 설명
docker 서비스 종료
[ec2-user@mongodb-service ~]$ sudo systemctl stop docker
ip link 확인
[ec2-user@mongodb-service-master ~]$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 06:cd:00:c1:08:84 brd ff:ff:ff:ff:ff:ff
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:4e:09:4c:f3 brd ff:ff:ff:ff:ff:ff
docker0 이더넷 종료
[ec2-user@mongodb-service-master ~]$ sudo ip link set dev docker0 down
docker0 이더넷 종료 확인
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 172.31.20.65 netmask 255.255.240.0 broadcast 172.31.31.255
inet6 fe80::4cd:ff:fec1:884 prefixlen 64 scopeid 0x20<link>
ether 06:cd:00:c1:08:84 txqueuelen 1000 (Ethernet)
RX packets 3473 bytes 295972 (289.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2896 bytes 328620 (320.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 138 bytes 46968 (45.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 138 bytes 46968 (45.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
docker ip 확인
[ec2-user@mongodb-service-master ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
link/ether 06:cd:00:c1:08:84 brd ff:ff:ff:ff:ff:ff
inet 172.31.20.65/20 brd 172.31.31.255 scope global dynamic eth0
valid_lft 2921sec preferred_lft 2921sec
inet6 fe80::4cd:ff:fec1:884/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:4e:09:4c:f3 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
docker ip 삭제
[ec2-user@mongodb-service-master ~]$ sudo ip addr del 172.17.0.1/16 dev docker0
docker ip 추가 및 변경 확인
[ec2-user@mongodb-service-master ~]$ sudo ip addr add 172.17.1.1/24 dev docker0
[ec2-user@mongodb-service-master ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
link/ether 06:cd:00:c1:08:84 brd ff:ff:ff:ff:ff:ff
inet 172.31.20.65/20 brd 172.31.31.255 scope global dynamic eth0
valid_lft 2764sec preferred_lft 2764sec
inet6 fe80::4cd:ff:fec1:884/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:4e:09:4c:f3 brd ff:ff:ff:ff:ff:ff
inet 172.17.1.1/24 scope global docker0
valid_lft forever preferred_lft forever
docker0 virtual bridge up 및 확인
[ec2-user@mongodb-service-master ~]$ sudo ip link set dev docker0 up
[ec2-user@mongodb-service-master ~]$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 06:cd:00:c1:08:84 brd ff:ff:ff:ff:ff:ff
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:4e:09:4c:f3 brd ff:ff:ff:ff:ff:ff
iptables - POSTROUTTING Chain 확인
[ec2-user@mongodb-service-master ~]$ sudo iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DOCKER all -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0
Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0
iptables - POSTROUTTING Chain 삭제 및 확인
[ec2-user@mongodb-service-master ~]$ sudo iptables -t nat -F POSTROUTING
[ec2-user@mongodb-service-master ~]$ sudo iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DOCKER all -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- 0.0.0.0/0 0.0.0.0/0
/etc/docker/daemon.json 파일 생성
{ "bip":"172.17.1.1/24" }
docker 및 mongodb Container 실행 및 ip 변경 확인
[root@mongodb-service-master ec2-user]# systemctl start docker
[root@mongodb-service-master ec2-user]# docker-compose up -d
mongodb is up-to-date
[root@mongodb-service-master ec2-user]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.1.1 netmask 255.255.255.0 broadcast 172.17.1.255
ether 02:42:4e:09:4c:f3 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
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 172.31.20.65 netmask 255.255.240.0 broadcast 172.31.31.255
inet6 fe80::4cd:ff:fec1:884 prefixlen 64 scopeid 0x20<link>
ether 06:cd:00:c1:08:84 txqueuelen 1000 (Ethernet)
RX packets 6880 bytes 525232 (512.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5197 bytes 582221 (568.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 138 bytes 46968 (45.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 138 bytes 46968 (45.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0