Docker Network
1. Docker 네트워크 개요 Docker 네트워크는 컨테이너, 볼륨, 이미지처럼 생성, 나열, 제거가 가능한 일급 객체.
- 기본 제공 네트워크:
- Bridge: 기본 네트워크. 컨테이너 간 통신과 컨테이너 이름 기반 해석 지원.
- Host: 컨테이너가 호스트의 네트워크 스택을 직접 공유.
- None: 네트워크 격리가 필요할 때 사용. 외부 네트워크와 통신 불가능.
2. 네트워크 종류 및 특징
- Bridge Network:
- 컨테이너 간 네트워크 통신 제공.
- 기본 네트워크, 격리된 환경에서 적합.
- 방화벽 및 접근 제어 기능 없음.
- Host Network:
- 컨테이너가 호스트 네트워크를 직접 사용.
- 성능 최적화에 유리하나, 보안 격리 없음.
- None Network:
- 컨테이너를 네트워크와 완전히 격리.
- 루프백 인터페이스만 사용 가능.
3. 컨테이너 간 통신
- Bridge 네트워크에서 컨테이너는 내부 IP 주소로 통신.
- 사용자 정의 네트워크를 생성하여 서브넷, IP 범위를 설정 가능:
docker network create \ --driver bridge \ --subnet 10.0.0.0/24 \ custom-network
4. 포트 매핑과 트래픽 관리
- 외부에서 컨테이너로 트래픽 전달 시 NodePort Publishing 사용:
docker run -d -p 8080:80 nginx
- 호스트의 8080 포트를 컨테이너의 80 포트로 매핑.
5. DNS 설정
- DNS 서버, 검색 도메인 등을 사용자 정의 가능:
docker run --rm \ --dns 8.8.8.8 \ --dns-search example.com \ alpine nslookup test.example.com
/etc/hosts
파일을 수정하여 IP-호스트 매핑 가능:docker run --rm \ --add-host myhost:127.0.0.1 \ alpine cat /etc/hosts
6. 네트워크 관리 주의사항
- 컨테이너 간 네트워크 통신은 보안적으로 제약 없음.
- 애플리케이션 레벨에서 접근 제어 메커니즘 구현 필요.
- 사용자 정의 방화벽 설정은 Docker 네트워크의 기본 제공 기능이 아님.
7. 멀티호스트 네트워크
- 여러 호스트 간 컨테이너 연결 필요 시 오버레이 네트워크 사용:
- 스웜 모드 활성화 필요.
- Linux 환경에서 Macvlan 네트워크를 사용하여 호스트의 네트워크 주소를 직접 컨테이너에 할당 가능.
8. 사용 사례에 따른 선택
- Bridge: 단일 호스트에서의 기본적인 컨테이너 통신.
- Host: 성능이 중요한 로컬 네트워크 통합 환경.
- None: 격리된 작업이 필요한 테스트 또는 보안 민감 환경.
- Overlay: 다중 호스트 또는 클러스터 기반 서비스.
9. 외부 네트워크 통합
None
네트워크를 사용해 네트워크 관리를 외부 도구에 위임 가능.- Kubernetes 및 타사 네트워크 관리 도구와의 통합 필요 시 활용.
'Docker' 카테고리의 다른 글
쿠버네티스(Kubernetes) (0) | 2024.12.05 |
---|---|
도커 인 액션 6장 (0) | 2024.12.05 |
볼륨(Volume) (0) | 2024.12.04 |
도커 인 액션 4장 (0) | 2024.12.04 |
도커 인 액션 2장 (0) | 2024.12.04 |