2016-09-26 3 views
1

도커 컨테이너의 루프백 (lo) 인터페이스에서 별칭을 설정해야합니다. 도커 작성 파일에서이 작업을 수행하는 방법을 알 수 없습니다.도커 컨테이너의 lo 인터페이스에 추가 IP 추가

lo 인터페이스에 127.0.0.2, 127.0.0.3 및 127.0.0.4를 추가해야합니다. 도커 작성 파일에서 어떻게이 작업을 수행 할 수 있습니까?

내 맥에서는 나는 단지 ifconfig lo0 alias 127.0.0.4 up과 같은 것을 할 수 있었지만, 이것을 도커 컨테이너에서 어떻게 처리 할 수 ​​있는지 알 수 없었다.

답변

1

먼저 lo 인터페이스에 127.0.0.1/8이 지정되어 있기 때문에 linux는 기본적으로 127.0.0.2-4에 응답합니다. 인터페이스에 주소를 "추가"할 필요가 없을 수도 있습니다.

인터페이스에 특정 주소가 필요한 경우 Docker 네트워킹의 내부에 들어가야합니다. pipework이라는 유틸리티가 있는데 이런 유형의 것을 다루고 있으며이 단계는 코드에서 해제됩니다.

mkdir -p /var/run/netns 
rm -f "/var/run/netns/$NSPID" 
ln -s "/proc/$NSPID/ns/net" "/var/run/netns/$NSPID" 

ip netns exec $NSPID ip ad add 127.0.0.2/32 dev lo 

새로운 설정을 확인 인터페이스에 IP 주소를 추가이 컨테이너 ip netns 일을하자

NSPID=$(docker inspect -f '{{ .State.Pid }}' <container>) 

컨테이너의 PID는하기가

ip netns exec $NSPID ip ad sh lo 

이렇게하면 컨테이너 네트워크 네임 스페이스를 변경할 수 있습니다.

관련 문제