Docker 를 사용하다 보면 실제 공유기/또는 스위치 에서 배포하는 IP 로 설정이 필요한 경우가 있다. 도커 네트워크는 기본적으로 Bridge 로 설정이 되어 도커가 설치된 PC 가 아닌 다른 PC 에서 접근이 어렵다. (물론 포트 매핑을 통하면 가능하다.)

나 같은 경우는 그냥 같은 네트워크대역의 아이피를 사용하고 싶어 구글링을 통해 알아낸 방법이다. 이 방법은 3년전에 알아낸 방법인데 지금은 통용 되는지 잘 모르겠다.

흔적으로 남겨본다.

sudo docker network create -d macvlan \
--subnet=192.168.10.0/24 \
--gateway=192.168.10.1 \
-o parent=enp0s25 rubyon

위의 명령어를 보면 –subnet=192.168.10.0/24 가 있는데 이부분은 공유기에서 배포하는 IP 대역을 의미한다. 대부분 192.168.0.0/24 거나 192.168.1.0/24 일 경우가 많을것으로 생각 된다.

게이트웨이를 공유기 아이피로 설정해주고 parent 부분은 리눅스상 실제 물리적인 네트웍카드의 인터페이스 이름이다. eth0 일경우도 있고 이부분은 설치 환경마다 다 다르다.

ifconfig 등의 명령어를 통해 확인이 가능하다.

rubyon 이라는 것은 네트워크의 라벨로 원하는 이름을 사용하면 된다.

여기에 네트워크 아이피 범위를 추가해주고 싶으면 –subnet 이후

--ip-range=192.168.10.255/25 \	

를 추가해주면 된다.