
목차
📌 Docker Network 란?
Docker Network는 컨테이너 간 통신을 가능하게 해주는 가상 네트워크입니다.
컨테이너는 독립적인 환경에서 실행되지만, 애플리케이션을 만들다 보면 서로 데이터를 주고받아야 하거나 외부 요청을 받아야 할 일이 많습니다. Docker 네트워크는 이러한 컨테이너간 통신을 가능하게 해주는 역할을 합니다.
🔍 Docker Network 의 종류
Docker는 기본적으로 다음과 같은 네트워크 드라이버들을 제공합니다
| 드라이버 | 설명 |
|---|---|
| bridge | 기본 드라이버. 컨테이너 간 통신이 가능하며, 같은 호스트에서 작동합니다. |
| host | 컨테이너가 호스트의 네트워크를 그대로 사용합니다. 격리는 없지만 속도는 빠릅니다. |
| none | 네트워크를 사용하지 않도록 설정합니다. 완전한 격리가 필요할 때 사용합니다. |
| overlay | 여러 호스트 간 컨테이너를 연결할 수 있습니다. Docker Swarm에서 유용합니다. |
| macvlan | 컨테이너에 고유한 MAC 주소를 부여해 물리 네트워크처럼 동작시킵니다. |
✅ Docker 네트워크 생성
Docker 네트워크를 사용하면 다음과 같은 기능들을 사용할 수 있습니다.
- 같은 네트워크내 컨테이너 간 이름 기반 통신 가능
- 자체 서브넷 설정 가능
- 네트워크 격리를 통해 보안 강화
docker network create \ |
✅ Docker Network 사용
1. 네트워크 생성
Docker 명령어로 생성하는 네트워크는 기본적으로 bridge 네트워크를 사용합니다.
# 사용자 정의 브리지 네트워크 생성 |
NETWORK ID NAME DRIVER SCOPE |
2. 컨테이너 2개 실행 (같은 네트워크에 연결):
docker run -d --name container1 --network my-bridge-network nginx |
컨테이너2에서 container1 의 이름으로 접속이 가능합니다
👉 같은 네트워크에 연결된 컨테이너는 이름으로 서로 통신 가능하다는 점이 포인트입니다!
# container2 내부에서 |
✅ Docker 네트워크 관련 명령어
| 명령어 | 설명 |
|---|---|
| docker network ls | 네트워크 목록 보기 |
| docker network inspect <이름> | 네트워크 상세 정보 확인 |
| docker network create <이름> | 네트워크 생성 |
| docker network rm <이름> | 네트워크 삭제 |
| docker network connect <네트워크> <컨테이너> | 컨테이너를 네트워크에 연결 |
| docker network disconnect <네트워크> <컨테이너> | 연결 해제 |