도커는 여러 도커 컨테이너 사이에 전용 네트워크를 만들어 파일 및 기타 리소스를 공유할 수 있습니다. 도커 네트워크는 브리지 들아ㅣ버, McVLAN 드라이버 등 다양한 네트워크 드라이버로 생성이 가능합니다. 네트워크를 생성할 때 드라이버를 지정하지 않으면 기본 브리지 드라이버를 자동으로 선택합니다. 브리지 드라이버는 단일 호스트 네트워킹 드라이버이므로 그 범위가 로컬로 제한됩니다.
브리지 네트워크 드라이버
브리지는 기본 네트워크로 네트워크를 지정하지 않고 컨테이너를 생성하면 기본적으로 이 네트워크에 배치됩니다. 동일한 네트워크에 배치된 컨테이너는 서로 통신할 수 있지만 다른 네트워크에 있는 컨테이너는 설정과 권한 없이는 통신할 수 없습니다.
도커 네트워크 목록
docker network ls
도커 네트워크의 종류
- 브리지(default): 컨테이너가 다른 네트워크를 지정하지 않을 때 사용됩니다. 동일한 호스트의 컨테이너 간에 기본적인 통신을 제공합니다.
- 호스트: 컨테이너 간에 네트워크 격리를 원하지 않을 때 사용됩니다.
- none: 컨테이너에 네트워킹이 전혀 없을 경우 사용됩니다.
사용자 정의 브리지 네트워크에 컨테이너 연결
기본 브리지 네트워크에 생성된 컨테이너는 컨테이너의 IP 주소를 통해서만 통신할 수 있습니다. 컨테이너 이름(hostname)을 사용한 통신은 불가능합니다. 컨테이너 간의 연결은 IP 주소에 의존해서는 안됩니다. 컨테이너의 IP 주소는 동적이므로 계속 변경될 수 있습니다.
사용자 정의 브리지 네트워크 생성 방법
docker network crate -d <driver> <network-name>
사용자 정의 브리지 네트워크 생성 단계
1. 도커가 실행 중인지 확인합니다.
2. 브리지 네트워크를 생성합니다.
docker network create --driver bridge 000-net
3. 네트워크 생성되었는지 확인합니다.
docker network ls
4. 생성된 네트워크 검사합니다.
docker network inspect <network-name>
사용자 정의 브리지 네트워크에 생성된 컨테이너는 컨테이너 이름/IP를 사용하여 다른 컨테이너에 액세스할 수 있습니다.
기본 브리지 네트워크
도커를 설치하면 기본 브리지 네트워크가 자동으로 제공됩니다.
브리지 드라이버는 항상 단일 호스트 네트워킹을 제공하므로 범위는 로컬입니다.
브리지 네트워크에 도커 컨테이너 연결
브리지 네트워크는 컨테이너의 기본 네트워크입니다. 다른 네트워크를 지정하지 않으면 모든 새로운 컨테이너는 이 기본 네트워크에 연결됩니다.
docker run -dt -p 8080:80 --name webserver nginx
브리지 네트워크 검사
도커 컨테이너를 생성한 후 실행 중인지 확인합니다.
docker container ls
docker network inspect bridge
브리지 네트워크와 관련된 세부 정보를 JSON 형식으로 볼 수 있습니다. 네트워크에 연결된 컨테이너는 Continers 객체에서 확인할 수 있습니다.
기본 브리지와 사용자 정의 브리지의 차이점
기본 브리지 네트워크 | 사용자 정의 브리지 네트워크 |
컨테이너 간의 기본 네트워크 격리 제공 | 더많은 정책을 가진 네트워크 생성 가능 |
IP 주소를 사용하여 통신 | IP 및 컨테이너 이름을 사용하여 통 |
호스트 네트워크와 브리지 네트워크의 차이점
호스트 네트워크 | 브리지 네트워크 |
호스트의 네트워크 스택을 공유 | 컨테이너 간에 개인 내부 네트워크를 제공 |
네트워크 성능이 더 좋음 | 네트워크 브리지 오버헤드로 인해 성능 낮아짐 |
브리지 네트워크와 오버레이 네트워크의 차이점
브리지 네트워크 | 오버레이 네트워크 |
단일 호스트로 제한 | 여러 호스트에 걸쳐 있음 |
설정이 간단 | 설정이 복잡하며, 키-값 저장소를 포함 |
호스트 간 통신 오버헤드로 인해 성능이 느림 |
'Docker' 카테고리의 다른 글
[Docker] 네트워크를 통해서 두 개의 컨테이너 연결하기 (0) | 2024.06.19 |
---|---|
[Docker] 포트 관리하기 (0) | 2024.06.19 |
[Docker] network 사용방법 (0) | 2024.06.19 |
[Docker] Swarm 명령 사용법-2 (0) | 2024.06.18 |
[Docker] Swarm 명령 사용법-1 (0) | 2024.06.18 |