도커(Docker) : IPv6 기능 활성화 하기
- 개발환경/Docker
- 2020. 3. 4.
반응형
도커(Docker) : IPv6 기능 활성화 하기
본 글에서는 도커(Docker) 컨테이너에서 IPv6 기능을 활성화 하는 방법을 소개한다.
IPv6 를 지원하지 않는 도커 컨테이너
도커 컨테이너를 실행하면, 기본적으로는 IPv6 기능이 활성화 되지 않는다.
다음 화면은 도커 컨테이너를 실행한 후 ifconfig 명령을 통해 네트워크 인터페이스의 상태를 확인해 본 화면이다. IPv6 기능이 지원될 경우, 각 네트워크 인터페이스의 MAC 주소를 기반으로 한 링크-로컬 IPv6 주소가 자동으로 할당되어야 하는데, 그렇지 않은 것을 확인할 수 있다.
root@ff6676c91fa4:/workspace# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:766 (766.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@ff6676c91fa4:/workspace#
또한 네트워크 인터페이스에 IPv6 주소를 설정하려는 시도 역시 다음과 같이 실패한다.
root@096f1ad05a64:/workspace# ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0
RTNETLINK answers: Permission denied
root@096f1ad05a64:/workspace#
도커 컨테이너 IPv6 기능 활성화
Privileged 모드로 실행된 도커 컨테이너 상에서는 sysctl 명령을 이용하여 IPv6 기능을 활성화할 수 있다.
root@cf9e6dd74a58:/workspace# sysctl net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.all.disable_ipv6 = 0
root@cf9e6dd74a58:/workspace#
도커 컨테이너를 Privileged 모드로 실행하는 방법은 아래 글에 설명되어 있다.
위 명령 입력 후 ifconfig을 통해 네트워크 인터페이스의 상태를 확인해 보면, 다음과 같이 링크-로컬 IPv6 주소가 할당된 것을 확인할 수 있다.
root@cf9e6dd74a58:/workspace# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:836 (836.0 B) TX bytes:516 (516.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
또는 도커 컨테이너 실행 시에 "--sysctl net.ipv6.conf.all.disable_ipv6=0" 옵션을 추가함으로써, IPv6 기능을 활성화할 수도 있다.
docker run --sysctl net.ipv6.conf.all.disable_ipv6=0 [IMAGE NAME] [OTHER OPTIONS...]
이 경우 컨테이너를 Privileged 모드로 실행하지 않아도 IPv6 기능이 활성화된다.
하지만 컨테이너 실행 후에 IPv6 주소의 변경이 필요한 경우에는 Privileged 모드로 실행해야 한다.
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'개발환경 > Docker' 카테고리의 다른 글
도커(Docker) : TUN 디바이스(/dev/net/tun) 사용하기 (0) | 2021.01.08 |
---|---|
도커(Docker) : 사용자 계정으로 리눅스 컨테이너 실행하기 (0) | 2020.05.07 |
도커(Docker) : 공유 디렉토리(폴더) 연결하기 (0) | 2020.03.10 |
도커(Docker) : 쉘 사용하기 (0) | 2020.03.10 |
도커(Docker) : 종료된 컨테이너 제거하기 (0) | 2020.03.06 |
도커(Docker) : MAC 주소 설정(변경)하기 (0) | 2020.03.06 |
도커(Docker) : 포트 포워딩 설정(포트 맵핑)하기 (4) | 2020.03.05 |
도커(Docker) : Privileged 모드로 실행하기 (0) | 2020.03.04 |