반응형
브리지 네트워크와 —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)하기 때문이다.
반응형
'DevOps > Docker' 카테고리의 다른 글
[Docker] : fluentd 로깅 (0) | 2022.02.20 |
---|---|
[Docker] : JSON-FILE Log 사용하기 (0) | 2022.02.19 |
[Docker] : Container Network, 컨테이너 네트워크 (0) | 2022.02.18 |
[Docker] : None Network, 논 네트워크 (0) | 2022.02.18 |
[Docker] : Host Network, 호스트 네트워크 (0) | 2022.02.18 |
댓글