Docker 네트워크 컨테이너끼리 통신하기
Docker 네트워크는 컨테이너가 독립적인 네트워크 구조로 컨테이너끼리는 통신할 수 없다. 컨테이너끼리 통신하려면 알려진 방법인 드라이버 브릿지를 이용해 서로 같은 네트워크망으로 묶는 방법이 있다.
Docker Network 조회하기
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
ee7baa065db1 bridge bridge local
9ed8ea6f8d43 host host local
44f2be15c1fe kind bridge local
53a13433a9d3 none null localDocker는 기본 네트워크 제공으로 bridge, host, null 종류들이 있다.
Docker 네트워크 세부조회
$ docker network inspect ee7baa065db1
[
{
"Name": "bridge",
"Id": "ee7baa065db1c35180d56a1e1a4b274261e29c35f211743a17dc4cbfa9402a16",
"Created": "2026-04-28T20:04:26.004806518Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv4": true,
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.17.0.0/16",
"Gateway": "172.17.0.1"
}
]
},컨테이너간 통신 설정
먼저 주어진 이미지를 다운로드 받고 서로 컨테이너를 시도해보자.
docker 이미지 가져오기
docker pull rockylinux:8가져온 이미지들로 컨테이너를 실행시킨다.
docker 컨테이너 실행
docker run -it -d -p 80:80 --name rocky1 --hostname rocky1 rockylinux:8
docker run -it -d -p 81:80 --name rocky2 --hostname rocky2 rockylinux:8해당 도커로 실행한 것은 별도의 로컬 IP로 갖추고 있어서 서로 통신이 안될 것이다.
docker 네트워크 실행하기
docker network create --driver=bridge main-network기본 네트워크를 사용하지 않고 bridge 전용 네트워크를 생성하여 사용할 것이다.
docker 네트워크 연결하기
docker network connect main-network rocky1
docker network connect main-network rocky2docker 생성한 rocky1 도커 네트워크
$ docker inspect rocky2
"main-network": {
"IPAMConfig": {},
"Links": null,
"Aliases": [],
"DriverOpts": {},
"GwPriority": 0,
"NetworkID": "0162fb9e3dc6d860def8c28b246d2d97c68c92e8f37162454104454103b9c01a",
"EndpointID": "22b791f79e386b3110b730f73e99ac8cf0610e1a2c213faf14f61d33aa16a913",
"Gateway": "172.19.0.1",
"IPAddress": "172.19.0.2",
"MacAddress": "8a:2f:ee:58:1a:c5",docker 생성한 rocky1 도커 네트워크
$ docker inspect rocky2
"main-network": {
"IPAMConfig": {},
"Links": null,
"Aliases": [],
"DriverOpts": {},
"GwPriority": 0,
"NetworkID": "0162fb9e3dc6d860def8c28b246d2d97c68c92e8f37162454104454103b9c01a",
"EndpointID": "f265552dd93c6fe9e12066908eacf2705cda4550e3a36ecd55da82eba857607d",
"Gateway": "172.19.0.1",
"IPAddress": "172.19.0.3",
"MacAddress": "52:fc:d1:a8:c8:39",
...
}할당된 네트워크가 추가한 것을 볼 수 있고, 서로의 IP Address 가 다르게 할당되었다.
docker 통신 확인
$ docker exec -it rocky1 /bin/bash
[root@rocky1 /]# ping 172.19.0.2
PING 172.19.0.2 (172.19.0.2) 56(84) bytes of data.
64 bytes from 172.19.0.2: icmp_seq=1 ttl=64 time=0.206 ms
64 bytes from 172.19.0.2: icmp_seq=2 ttl=64 time=0.066 ms
^C
--- 172.19.0.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1017ms
rtt min/avg/max/mdev = 0.066/0.136/0.206/0.070 ms
[root@rocky1 /]# ping 172.19.0.1
PING 172.19.0.1 (172.19.0.1) 56(84) bytes of data.
64 bytes from 172.19.0.1: icmp_seq=1 ttl=64 time=0.156 ms
64 bytes from 172.19.0.1: icmp_seq=2 ttl=64 time=0.096 ms
64 bytes from 172.19.0.1: icmp_seq=3 ttl=64 time=0.058 ms
^C
--- 172.19.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2054ms
rtt min/avg/max/mdev = 0.058/0.103/0.156/0.041 ms
[root@rocky1 /]#