본문 바로가기
DevOps/Docker

[Docker] : bridge Network와 --net-alias

by 오주현 2022. 2. 18.
반응형

브리지 네트워크와 —net-alias

브리지 타입의 네트워크와 run 명령어의 —net-alias 옵션을 같이 사용하면 특정 호스트 이름으로 컨테이너 여러 개에 접근할 수 있다.

 

위에서 생성한 mybridge 네트워크를 이용해 컨테이너를 3개 생성해 본다.

 

—net-alias 옵션의 값은 alicek106으로 설정했고 다른 컨테이너에서 alicek106이라는 호스트 이름으로 아래 3개의 컨테이너에 접근할 수 있다.

 

docker run -i -t -d --name network_alias_container1 \\
--net mybridge \\
--net-alias alicek106 \\
ubuntu:14.04
docker run -i -t -d --name network_alias_container2 \\
--net mybridge \\
--net-alias alicek106 \\
ubuntu:14.04
docker run -i -t -d --name network_alias_container3 \\
--net mybridge \\
--net-alias alicek106 \\
ubuntu:14.04
docker inspect network_alias_container1 | grep IPAddress
docker inspect network_alias_container2 | grep IPAddress
docker inspect network_alias_container3 | grep IPAddress

inspect 명령어로 각 컨테이너의 IP를 확인해 본다.

 

첫 번째 컨테이너의 IP 주소는 172.18.0.3이고 그 다음은 .4, .5 이렇게 IP주소를 가지고 있게 된다. 세 개의 컨테이너의 접근할 컨테이너를 생성한 뒤 alicek106이라는 호스트 이름으로 ping 요청을 전송해 본다.

 

docker run -i -t --name network_alias_ping \\
--net mybridge \\
ubuntu:14.04
ping -c 1 alicek106

컨테이너 3개의 IP로 각각 ping이 전송되는 것을 확인할 수 있다.

 

매번 달라지는 IP를 결정하는 것은 라운드 로빈(round-robin) 방식이다.

 

이게 가능한 이유는 도커 엔진에 내장된 DNS가 alicek106이라는 호스트 이름을 —net-alias 옵션으로 alicek106을 설정한 컨테이너로 변환(resolve)하기 때문이다.

반응형

댓글