Docker에서는 컨테이너끼리 서로 통신하거나 외부 네트워크와 연결하기 위해 Docker Network를 사용합니다. 기본적으로 Docker는 Bridge Network를 자동으로 생성하지만, 실제 운영 환경에서는 프로젝트별로 별도의 네트워크를 만들어 사용하는 경우가 훨씬 많습니다.
예를 들어 WordPress와 MySQL을 함께 실행하거나 Nginx와 Backend 서버를 연결할 때 모두 같은 Docker Network에 연결하면 컨테이너 이름만으로도 서로 통신할 수 있습니다. 이러한 구조는 보안성과 관리 편의성을 크게 향상시켜 운영 서버에서 널리 사용됩니다.
이럴 때 사용하는 명령어가 바로 docker network create입니다.
Docker Network Create는 새로운 Docker 네트워크를 생성하는 명령어입니다. Bridge, Overlay, Macvlan 등 다양한 네트워크 드라이버를 사용할 수 있으며, 컨테이너 간 통신을 효율적으로 구성하는 데 핵심적인 역할을 합니다.
이번 글에서는 Docker Network Create의 개념부터 기본 사용법, 주요 옵션, 네트워크 종류, 실무 활용 방법까지 자세히 알아보겠습니다.
Docker Network Create란 무엇인가?
Docker Network Create는 새로운 Docker 네트워크를 생성하는 명령어입니다.
생성된 네트워크에 여러 컨테이너를 연결하면 같은 네트워크 안에서 서로 자유롭게 통신할 수 있습니다.
운영 환경에서는 서비스별로 네트워크를 분리하여 사용하는 것이 일반적입니다.
Docker Network Create는 언제 사용하는가?
다음과 같은 상황에서 자주 사용합니다.
- WordPress와 MySQL 연결
- Nginx와 Backend 서버 연결
- Redis 연결
- 프로젝트별 네트워크 분리
- 마이크로서비스 구성
- 컨테이너 간 보안 강화
운영 서버에서는 대부분 사용자 정의 네트워크(User-defined Network)를 생성하여 사용합니다.
Docker Network Create 기본 사용법
가장 기본적인 사용 방법입니다.
docker network create my_network
생성이 완료되면 네트워크 ID가 출력됩니다.
7d8b5a5fd81d1f3abfd2...
이제 my_network라는 Docker Network가 생성되었습니다.
생성된 네트워크 확인하기
생성 후에는 목록을 확인해 봅니다.
docker network ls
출력 예시는 다음과 같습니다.
NETWORK ID NAME DRIVER
3f42a12bcf21 bridge bridge
8d6e41d21ab2 host host
9bc52c8ef021 none null
7d8b5a5fd81d my_network bridge
새로 만든 네트워크가 정상적으로 생성된 것을 확인할 수 있습니다.
기본 Driver 지정하기
기본적으로 Bridge Driver가 사용되지만 직접 지정할 수도 있습니다.
docker network create \
--driver bridge \
my_network
Bridge Driver는 가장 많이 사용하는 Docker Network Driver입니다.
서브넷 지정하기
IP 대역을 직접 지정하여 네트워크를 생성할 수도 있습니다.
docker network create \
--subnet=172.20.0.0/16 \
my_network
운영 환경에서 IP 충돌을 방지하거나 특정 네트워크 구조를 구성할 때 많이 사용하는 방법입니다.
Gateway 지정하기
Gateway도 함께 지정할 수 있습니다.
docker network create \
--subnet=172.20.0.0/16 \
--gateway=172.20.0.1 \
my_network
IP 주소를 체계적으로 관리해야 하는 서버 환경에서 유용하게 활용됩니다.
Docker Network Driver 종류
Docker에서는 다양한 Network Driver를 제공합니다.
Bridge
가장 많이 사용하는 기본 네트워크입니다.
단일 서버에서 여러 컨테이너를 연결할 때 사용합니다.
Host
컨테이너가 Host의 네트워크를 그대로 사용합니다.
네트워크 성능이 중요한 서비스에서 사용됩니다.
None
네트워크 기능을 사용하지 않는 독립적인 컨테이너를 생성할 때 사용합니다.
Overlay
Docker Swarm 환경에서 여러 서버를 연결하는 네트워크입니다.
클러스터 환경에서 주로 사용됩니다.
Macvlan
컨테이너에 실제 네트워크 IP를 부여할 수 있는 Driver입니다.
특수한 네트워크 환경에서 사용됩니다.
Docker Network Create 실무 활용 예제
Docker Network Create는 운영 환경에서 프로젝트별 네트워크를 구성하거나 서비스 간 통신을 안전하게 관리하기 위해 자주 사용하는 명령어입니다.
새로운 네트워크 생성하기
가장 기본적인 사용 방법입니다.
docker network create web_network
web_network라는 이름의 Bridge Network가 생성됩니다.
Driver를 지정하여 생성하기
Bridge Driver를 명시적으로 지정하는 방법입니다.
docker network create \
--driver bridge \
web_network
기본적으로는 Bridge Driver가 사용되지만, 설정을 명확하게 하기 위해 Driver를 지정하는 경우도 많습니다.
IP 대역을 지정하여 생성하기
특정 IP 대역을 사용하는 네트워크를 생성합니다.
docker network create \
--subnet=172.30.0.0/16 \
web_network
프로젝트별 IP를 체계적으로 관리할 때 많이 사용하는 방법입니다.
Gateway까지 함께 지정하기
docker network create \
--subnet=172.30.0.0/16 \
--gateway=172.30.0.1 \
web_network
대규모 서비스나 여러 Docker Network를 함께 운영하는 환경에서 유용합니다.
생성 후 네트워크 확인하기
네트워크가 정상적으로 생성되었는지 확인합니다.
docker network ls
출력 예시는 다음과 같습니다.
NETWORK ID NAME DRIVER
7fa23b6b8df1 bridge bridge
ad98fd67ce31 web_network bridge
생성한 네트워크가 목록에 표시되면 정상적으로 생성된 것입니다.
컨테이너 실행 시 네트워크 지정하기
생성한 네트워크를 바로 사용할 수도 있습니다.
docker run -d \
--network web_network \
--name nginx \
nginx
컨테이너가 web_network에 연결되어 실행됩니다.
Linux 서버 문제 해결
운영 서버에서 Nginx와 Spring Boot 컨테이너를 실행했지만 서로 통신하지 못하는 문제가 발생했습니다.
원인을 확인해 보니 각각 다른 Docker Network에 연결되어 있었기 때문입니다.
먼저 새로운 네트워크를 생성했습니다.
docker network create backend_network
Nginx 컨테이너를 해당 네트워크에 연결했습니다.
docker network connect backend_network nginx
Spring Boot 컨테이너도 동일한 네트워크에 연결했습니다.
docker network connect backend_network spring
이후에는 컨테이너 이름만으로 서로 통신할 수 있었으며 별도의 IP 주소를 직접 관리할 필요도 없어졌습니다.
운영 환경에서는 관련된 서비스들을 하나의 사용자 정의 Network로 구성하는 것이 가장 일반적인 방식입니다.
Docker Network Create 사용 시 주의사항
Docker Network Create를 사용할 때는 다음 사항을 알아두면 좋습니다.
첫 번째는 프로젝트마다 별도의 네트워크를 생성하는 것이 좋습니다.
모든 컨테이너를 하나의 네트워크에서 관리하면 보안과 관리 측면에서 불리할 수 있습니다.
두 번째는 IP 대역이 다른 네트워크와 충돌하지 않도록 설계해야 합니다.
특히 VPN이나 사내 네트워크를 사용하는 경우에는 서브넷을 신중하게 선택해야 합니다.
세 번째는 Driver의 특성을 이해하고 환경에 맞게 선택하는 것이 중요합니다.
단일 서버라면 Bridge Driver가 대부분의 상황에서 적합합니다.
네 번째는 서비스 종료 후 더 이상 사용하지 않는 네트워크는 정리하여 관리하는 것이 좋습니다.
Best Practice
Docker Network Create를 사용할 때는 다음과 같은 방법을 추천합니다.
- 프로젝트별로 네트워크를 분리합니다.
- 서비스 성격에 맞는 Driver를 선택합니다.
- 서브넷 충돌을 방지하기 위해 IP 대역을 계획합니다.
- 운영 환경에서는 사용자 정의 Bridge Network를 사용합니다.
- 컨테이너 이름 기반 통신을 적극 활용합니다.
- 사용하지 않는 네트워크는 정기적으로 정리합니다.
이러한 방법을 적용하면 Docker 네트워크를 더욱 안전하고 효율적으로 운영할 수 있습니다.
자주 묻는 질문
Docker Network를 반드시 직접 생성해야 하나요?
아닙니다.
기본 Bridge Network를 사용할 수도 있지만 운영 환경에서는 사용자 정의 Network를 사용하는 것이 권장됩니다.
Bridge와 Host의 차이는 무엇인가요?
Bridge는 컨테이너 간 독립적인 네트워크를 구성하며, Host는 컨테이너가 호스트의 네트워크를 그대로 사용합니다.
하나의 컨테이너를 여러 Network에 연결할 수 있나요?
가능합니다.
Docker는 하나의 컨테이너를 여러 네트워크에 동시에 연결할 수 있습니다.
Network를 생성하면 바로 사용할 수 있나요?
네.
생성 후 docker run --network 옵션이나 docker network connect 명령으로 바로 사용할 수 있습니다.
마무리
Docker Network Create는 컨테이너 간 통신을 구성하는 가장 기본적이고 중요한 명령어입니다.
프로젝트별로 네트워크를 분리하면 보안성과 관리 효율성이 높아지고, 컨테이너 이름만으로도 손쉽게 통신할 수 있어 운영이 훨씬 편리해집니다.
특히 운영 서버에서는 사용자 정의 Bridge Network를 적극 활용하는 것이 Docker 환경을 안정적으로 관리하는 핵심 방법입니다.