
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 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
같은 네트워크 내 컨테이너 간 통신:
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)와 기본적으로 통신 불가.
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
✅ 네트워크 인터페이스와는 통신 가능.
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를 통해 인터넷과 통신 가능.