Docker IP 변경

EnoSoup·2021년 7월 23일
0

Docker

목록 보기
1/5
post-thumbnail

변경 방법

Docker IP 변경 관련 MongoDB 컨테이너 서비스를 기준으로 설명

docker 서비스 종료

[ec2-user@mongodb-service ~]$ sudo systemctl stop docker
[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
profile
Cloud Engineer@Plateer. 클라우드 상에서 엔지니어링을 재미있게 하는 엔지니어입니다.

0개의 댓글