Docker 네트워킹은 컨테이너를 다양한 네트워크에 연결할 수 있게 해줍니다. 이를 통해 컨테이너 간 통신을 설정하고, 컨테이너가 외부 네트워크와 상호작용할 수 있도록 합니다. Docker는 여러 네트워크 드라이버를 제공하여 다양한 네트워크 구성을 지원합니다.
Docker 네트워크 드라이버는 다양한 네트워크 구성을 구현하는 데 사용됩니다. 주요 네트워크 드라이버 유형은 다음과 같습니다:
브릿지 네트워크는 컨테이너의 기본 네트워크 드라이버입니다. 드라이버를 지정하지 않으면 이 유형의 네트워크가 생성됩니다. 브리지 네트워크는 애플리케이션이 독립 실행형 컨테이너에서 실행되고 서로 통신해야 할 때 사용됩니다. docker-proxy를 통해 호스트와 연결되며, 통신이 필요할 경우 포트를 맵핑해줘야 합니다.
호스트 네트워크는 독립 실행형 컨테이너의 경우, 컨테이너와 Docker 호스트 간의 네트워크 격리를 제거하고 호스트의 네트워킹을 직접 사용합니다. 이는 네트워크 성능이 중요한 경우에 유용합니다.
Docker 명령어를 통해 현재 네트워크 상태를 확인할 수 있습니다:
호스트 네트워크 모드는 컨테이너가 호스트의 네트워크 스택을 공유하도록 설정합니다. 이를 통해 네트워크 격리가 제거되고, 컨테이너는 호스트와 동일한 IP 및 포트를 사용합니다.
브릿지 네트워크는 기본 네트워크 드라이버로, 컨테이너가 동일한 브릿지 네트워크 내에서 서로 통신할 수 있도록 합니다.
nginx01 → nginx02:
$ docker exec -it nginx01 curl 172.17.0.3
nginx02 → nginx01:
$ docker exec -it nginx02 curl 172.17.0.2
위 실습을 통해 컨테이너가 브릿지 네트워크를 통해 서로 통신할 수 있음을 확인할 수 있습니다. 브릿지 네트워크는 일반적으로 여러 컨테이너가 동일한 호스트 내에서 상호작용해야 하는 경우에 사용됩니다.
특성 | Bridge 네트워크 | Host 네트워크 |
정의 | 가상 네트워크 사용 | 호스트 네트워크 직접 사용 |
격리성 | 높음 | 낮음 |
성능 | 약간의 오버헤드 | 최상의 성능 |
네트워크 설정 | 유연하지만 복잡 | 단순 |
포트 매핑 | 필요 | 불필요 |
보안 | 강화된 보안 | 낮은 보안성 |
Docker 네트워킹을 통해 컨테이너 간 통신과 외부 네트워크와의 상호작용을 쉽게 설정할 수 있습니다. 브릿지 네트워크는 독립 실행형 애플리케이션 컨테이너에 적합하며, 호스트 네트워크는 네트워크 성능이 중요한 경우에 유용합니다. 이러한 네트워크 드라이버를 적절히 활용하여 애플리케이션의 요구에 맞는 네트워크 구성을 구현할 수 있습니다.
[Docker] Docker Compose: 다중 컨테이너 관리의 차이점과 실전 활용법 (0) | 2024.05.28 |
---|---|
[Docker] Dockerfile 튜토리얼: Ubuntu에서 Nginx 웹 서버 설정하기 (0) | 2024.05.28 |
[Docker] 데이터 저장 및 관리 방법 / bind or volume 마운트 (0) | 2024.05.24 |
[Docker] 아키텍처 architecture (0) | 2024.05.23 |
[Docker] private repository 에 image push 해보기 (0) | 2024.05.23 |