Switch 같은 것bridge 라는 이름의 네트워크 자동 생성bridge 네트워크가 기본 연결# 브리지 네트워크 목록 보기
docker network ls
NETWORK ID NAME DRIVER SCOPE
d38bc9d35e7c bridge bridge local # default
ebb7a44afb02 host host local # host
ff684a37f436 none null local # 안씀

ip addr
# 결과
# 호스트 머신
docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
inet 172.17.0.1/16 scope global docker0
34: veth12345@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
# veth12345 : 호스트 쪽에 보이는 veth 이름 (랜덤하게 붙여짐)
# @if33 : 연결된 반대편 인터페이스 번호 (컨테이너 쪽)
docker info
Client: Docker Engine - Community
Version: 28.0.4
...
Server:
Containers: 7
Running: 1
Paused: 0
Stopped: 6
Images: 2
Server Version: 28.0.4
Storage Driver: overlay2
...
** Network: bridge host ipvlan macvlan null overlay **
# 도커가 현재 사용할 수 있는 네트워크 드라이버 종류
...
docker network inspect bridge
#결과
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
# 브리지 네트워크 대역
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},
"Internal": false,
"Attachable": false,
# 이 네트워크에 연결된 컨테이너 목록
"Containers": {
"d3b5f45a1cbe23ff1234...": {
"Name": "my-nginx",
"EndpointID": "a12b12345cd...",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.17.0.2/16",
"IPv6Address": ""
},
...
},

docker exec test06 ip a
# 결과
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 86:7e:81:b0:2b:c5 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet **172.17.0.2/16** brd 172.17.255.255 scope global eth0
valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:a0:f9:17:02:a1 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::a0:f9ff:fe17:2a1/64 scope link
valid_lft forever preferred_lft forever
# 현재 기동중인 컨테이너 전체 삭제
$ docker container rm -f $(docker ps -aq)
# q : 컨테이너의 id 보여줌
# netbr00 컨테이너 시작
$ docker run -d --name=netbr00 -p 8080:80 nginx
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
860b0faf7811 nginx "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp netbr00
# 8080 으로 들어온 요청을 80으로 기동중인 어플리케이션으로 전달
$ curl -v http://localhost:8080
정상 응답
방화벽 해제 후

퍼블릭ip:8080 로 접속

정상 배포 확인
$ iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
7 372 DOCKER all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DOCKER all -- * * 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * !docker0 172.17.0.0/16 0.0.0.0/0
Chain DOCKER (2 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- docker0 * 0.0.0.0/0 0.0.0.0/0
0 0 DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 to:172.17.0.2:80
docker inspect netbr00
# 결과
"NetworkSettings": {
"Bridge": "",
"SandboxID": "9be23bdd154c0a748eafdce17491dbf4813b926590b9cfab67051fd353794c62",
"SandboxKey": "/var/run/docker/netns/9be23bdd154c",
"Ports": {
"80/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "8080"
},
{
"HostIp": "::",
"HostPort": "8080"
}
]
},