이번 시간에는 docker network에 대하여 알아보겠습니다.
도커(Docker) 환경에서 여러 개의 컨테이너(예: Web, WAS, DB)를 연동하여 하나의 서비스를 구성할 때, 컨테이너 간 상호 통신을 위한 네트워크 설정이 필수적입니다.
도커 네트워크를 구성하면 컨테이너마다 내부 IP를 할당받을 수 있으며, 특정 컨테이너 명칭(Name)을 기반으로 통신 대상을 특정할 수 있습니다.
도커 네트워크의 기본 개념과 생성, 연결, 해제에 이르는 주요 명령어 흐름을 정리합니다.
1. 도커 네트워크 기본 개념 및 종류 확인
도커를 설치하면 기본적으로 제공되는 네트워크 드라이버들이 존재합니다.
현재 도커 환경에 구성된 네트워크 목록은 다음 명령어로 확인합니다.
docker network ls
[실행 결과 예시]
NETWORK ID NAME DRIVER SCOPE
4004e494e3c9 bridge bridge local <- 기본값(미지정 시 적용)
76f746462938 host host local
c0d4c38c0833 none null local
[추가 지식: 주요 네트워크 드라이버의 특징]
- bridge: 도커의 기본 네트워크 모드입니다. 호스트(Host) 장비 내부에 격리된 가상의 사설 네트워크를 생성하여 컨테이너들을 연결합니다.
- host: 호스트 PC의 네트워크 환경을 컨테이너가 그대로 공유하여 사용합니다. 포트 포워딩(-p) 없이 호스트의 포트를 직접 사용하게 됩니다.
- none: 컨테이너의 네트워크를 완전히 단절(격리)시킬 때 사용합니다.
2. 사용자 정의 네트워크 생성
실무에서는 기본 bridge 네트워크를 그대로 사용하기보다, 프로젝트 목적에 맞는 사용자 정의(User-defined) 브리지 네트워크를 생성하여 관련 컨테이너(Web, WAS, DB 등)를 하나의 네트워크 망으로 묶어주는 것이 권장됩니다.
# 'web-network'라는 이름의 새로운 브리지 네트워크 생성
docker network create --driver=bridge web-network
[실행 결과 확인]
docker network ls
NETWORK ID NAME DRIVER SCOPE
4004e494e3c9 bridge bridge local
76f746462938 host host local
c0d4c38c0833 none null local
370c709e6a1c web-network bridge local
[추가 지식: 사용자 정의 네트워크를 사용하는 결정적 이유 (DNS Resolution)] 도커가 기본으로 제공하는 bridge 네트워크에서는 IP 주소를 통해서만 컨테이너 간 통신이 가능합니다. 하지만 사용자 정의 네트워크(예: web-network)에 연결된 컨테이너들은 도커 내장 DNS 서버를 통해 '컨테이너 이름(Name)'으로 상호 통신(IP 해석)이 가능합니다. 컨테이너 재시작 시 내부 IP가 변경되더라도, 이름으로 통신을 지정해 두면 IP 변경에 영향을 받지 않는다는 강력한 이점이 있습니다.

3. 컨테이너에 네트워크 연결 및 상세 정보 확인
새로 생성한 네트워크를 기존에 구동 중인 컨테이너(예: my-fastapi)에 연결할 수 있습니다. (일반적으로는 docker run 명령으로 컨테이너를 생성할 때 --network web-network 옵션을 주어 처음부터 연결하는 방식을 더 자주 사용합니다.)
# 특정 컨테이너 네트워크 상세 정보 확인 (기본 bridge만 연결된 상태)
docker container inspect my-fastapi
[실행 결과 요약]
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null
// ... (내부 IP 정보 등)
}
}
이제 생성해둔 web-network에 컨테이너를 연결합니다.
# my-fastapi 컨테이너를 web-network 망에 추가 연결
docker network connect web-network my-fastapi
연결 후 다시 inspect 명령어로 상태를 확인하면, 하나의 컨테이너가 여러 개의 네트워크망에 동시에 속할 수 있음을 확인할 수 있습니다.
docker container inspect my-fastapi
[실행 결과 요약]
"Networks": {
"bridge": {
// ...
},
"web-network": {
// ... (web-network로부터 새로 할당받은 내부 IP 정보 확인 가능)
}
}
4. 네트워크 연결 해제 및 삭제
프로젝트가 종료되거나 구조가 변경되어 네트워크를 정리해야 할 때 수행하는 절차입니다. 네트워크를 삭제하려면, 해당 네트워크를 사용 중인 모든 컨테이너의 연결을 먼저 해제해야 합니다.
# 컨테이너에서 해당 네트워크 연결 해제
docker network disconnect web-network my-fastapi
# 컨테이너 연결이 모두 해제된 후 네트워크 자체를 삭제
docker network rm web-network
# 정상 삭제 확인
docker network ls
'코딩 개발 > Docker' 카테고리의 다른 글
| Dockerfile 기본 활용법 - FROM (0) | 2026.08.06 |
|---|---|
| Docker - Volume & Mount (볼륨, 마운) (0) | 2026.08.05 |
| Docker - Container 컨테이너 (0) | 2026.08.03 |
| Docker - Image 이미지 (0) | 2026.07.31 |
| Docker - 개요, 구조, 설치, 기본 명령어 (0) | 2026.07.30 |