Docker Network - Bridge Network Practice

y001·2025년 2월 22일
0
post-thumbnail

네트워크 및 컨테이너 구조


1. 환경구성

사용자 정의 브리지 네트워크 생성

docker network create -d bridge my_bridge
  • -d bridge: 브리지 네트워크 드라이버 사용.
  • my_bridge: 새롭게 생성할 네트워크 이름.

네트워크 리스트 확인:

docker network ls

출력 예시:

NETWORK ID     NAME        DRIVER    SCOPE
a3e761ba9d99   bridge      bridge    local
de3a7730969b   my_bridge   bridge    local
  • my_bridge 네트워크가 생성됨.
  • 생성된 네트워크 게이트웨이에도 IP 주소가 자동 할당됨.

네트워크 인터페이스 확인:

ip address

출력 예시:

10: br-a4a0ed8773b3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-a4a0ed8773b3

브리지 네트워크에 컨테이너 연결

docker container run -itd --name alpine1 --network=bridge alpine ash
docker container run -itd --name alpine2 --network=bridge alpine ash
docker container run -itd --name alpine3 --network=my_bridge alpine ash

2. 컨테이너 간 통신 테스트

같은 네트워크 내 컨테이너 간 통신:

docker exec -it alpine1 ping -c 3 172.17.0.3  # alpine2의 IP

출력:

64 bytes from 172.18.0.3: seq=1 ttl=64 time=0.123 ms
64 bytes from 172.18.0.3: seq=2 ttl=64 time=0.112 ms
64 bytes from 172.18.0.3: seq=3 ttl=64 time=0.110 ms

같은 bridge 네트워크 내 컨테이너들은 통신 가능.

다른 네트워크 간 통신 테스트:

docker exec -it alpine1 ping -c 3 172.18.0.2  # alpine3의 IP

출력:

--- 172.17.0.2 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss

다른 네트워크(bridge)와 기본적으로 통신 불가.


3. 네트워크 게이트웨이와의 통신

docker exec -it alpine1 ping -c 3 172.18.0.1  # my_bridge 네트워크 인터페이스 IP
docker exec -it alpine1 ping -c 3 172.17.0.1  # bridge 네트워크 인터페이스 IP

출력 예시:

64 bytes from 172.18.0.1: seq=0 ttl=64 time=0.461 ms
64 bytes from 172.17.0.1: seq=0 ttl=64 time=0.804 ms

네트워크 인터페이스와는 통신 가능.


4. 외부 통신 테스트

1️⃣ 인터넷 연결 확인 (ping 8.8.8.8)

docker exec -it alpine1 ping -c 3 8.8.8.8

출력 예시:

64 bytes from 8.8.8.8: seq=1 ttl=57 time=12.3 ms
64 bytes from 8.8.8.8: seq=2 ttl=57 time=10.2 ms
64 bytes from 8.8.8.8: seq=3 ttl=57 time=11.8 ms

컨테이너가 NAT를 통해 인터넷과 통신 가능.

0개의 댓글