도커 네트워크 설명

An informative illustration depicting Docker networking concepts. The image includes a visual representation of Docker containers connected through different networking modes such as bridge, host, overlay, and macvlan. Each network type is labeled, with clear arrows showing data flow between containers. The background has a modern tech-themed design with subtle blue tones.

도커 네트워크(Docker Network)는 컨테이너 간의 통신을 관리하는 기능을 제공하며, 도커 컨테이너들이 서로 또는 외부 네트워크와 원활하게 연결될 수 있도록 해줍니다. 도커 네트워크를 사용하면 컨테이너 간의 통신을 효율적으로 설정하고 관리할 수 있으며, 네트워크 격리(isolation)도 가능하게 합니다.

도커 네트워크 종류

도커는 기본적으로 몇 가지 네트워크 드라이버를 제공합니다:

1. Bridge 네트워크 (기본값)

  • 기본적으로 docker run 명령어를 사용할 때 컨테이너는 bridge 네트워크에 연결됩니다.
  • 컨테이너들은 같은 브리지 네트워크 내에서 서로 통신할 수 있지만, 외부 네트워크와는 NAT(Network Address Translation)를 통해 통신합니다.
  • docker network create 명령을 사용하여 사용자 정의 브리지 네트워크를 생성하면 컨테이너 간 통신이 더욱 유연해지고, 컨테이너 이름으로 접근할 수 있습니다.
docker network create my_bridge_network
docker run -dit --name container1 --network my_bridge_network alpine
docker run -dit --name container2 --network my_bridge_network alpine

2. Host 네트워크

  • 컨테이너가 호스트의 네트워크를 직접 사용하여 별도의 네트워크 인터페이스 없이 동작합니다.
  • 성능이 뛰어나지만, 네트워크 격리가 없으므로 보안상 주의해야 합니다.
  • --network host 옵션을 사용하면 컨테이너가 호스트의 네트워크를 공유합니다.
docker run --rm -dit --network host nginx

3. Overlay 네트워크

  • 여러 개의 도커 데몬이 있는 스웜(Swarm) 환경에서 사용됩니다.
  • 여러 호스트에 걸쳐 있는 컨테이너들을 하나의 네트워크처럼 연결할 수 있습니다.
  • docker network create 명령을 사용하여 overlay 네트워크를 생성할 수 있습니다.
docker network create -d overlay my_overlay_network

4. Macvlan 네트워크

  • 컨테이너에 실제 물리적 네트워크 인터페이스의 MAC 주소를 할당하여 직접 통신할 수 있도록 합니다.
  • 주로 네트워크의 세분화 및 특정한 네트워크 요구 사항이 있을 때 사용됩니다.
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 my_macvlan_network

5. None 네트워크

  • 컨테이너가 네트워크 인터페이스를 가지지 않으며, 완전히 격리된 상태로 동작합니다.
  • 네트워크 기능이 필요하지 않은 경우 사용됩니다.
docker run --rm -dit --network none alpine


도커 네트워크 관리 명령어

도커 네트워크를 관리하는 주요 명령어는 다음과 같습니다:

네트워크 목록 확인

docker network ls

네트워크 상세 정보 확인

<pre class="wp-block-syntaxhighlighter-code">docker network inspect <네트워크이름>
</pre>

네트워크 생성

docker network create my_custom_network

네트워크 삭제

<pre class="wp-block-syntaxhighlighter-code">docker network rm <네트워크이름>
</pre>

컨테이너를 특정 네트워크에 연결

<pre class="wp-block-syntaxhighlighter-code">docker network connect <네트워크이름> <컨테이너이름>
</pre>

컨테이너를 특정 네트워크에서 제거

<pre class="wp-block-syntaxhighlighter-code">docker network disconnect <네트워크이름> <컨테이너이름>
</pre>

도커 네트워크의 활용

  • 컨테이너 간 통신: 브리지 네트워크를 활용하면 컨테이너 간에 직접 통신할 수 있습니다.
  • 외부 서비스와 연결: 컨테이너를 host 네트워크에 연결하면 외부 서비스와 직접 통신할 수 있습니다.
  • 다중 호스트 네트워크: overlay 네트워크를 사용하면 여러 호스트에서 실행되는 컨테이너 간 통신을 설정할 수 있습니다.
  • 보안 강화: none 네트워크를 사용하여 특정 컨테이너를 완전히 격리할 수 있습니다.

도커 네트워크를 적절히 활용하면 컨테이너 기반 애플리케이션을 더욱 효율적으로 구축하고 운영할 수 있습니다. 필요한 네트워크 유형을 선택하여 최적의 환경을 구성하는 것이 중요합니다! 🚀

도커 네트워크는 운영체제(OS) 환경에 따라 지원하는 네트워크 드라이버가 다소 차이가 있습니다. 특히 Windows와 macOS에서는 일부 네트워크 드라이버가 제한적으로 지원되며, Linux는 거의 모든 네트워크 드라이버를 완벽하게 지원합니다.

Leave a Comment