컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 클라우드 컴퓨팅 핵심 기술 Docker 튜토리얼: Docker는 브리지 네트워크를 사용합니다.

클라우드 컴퓨팅 핵심 기술 Docker 튜토리얼: Docker는 브리지 네트워크를 사용합니다.

국가 산업, 경제 정보를 놓치지 않으려면 오른쪽 상단의 '팔로우'를 클릭하세요

네트워크로 말하면 브리지 네트워크는 링크 계층 장치입니다. 네트워크 세그먼트 간에 트래픽을 전달합니다. 브리지는 하드웨어 장치일 수도 있고 호스트 커널에서 실행되는 소프트웨어 장치일 수도 있습니다.

Docker의 경우 브리지 네트워크는 동일한 브리지 네트워크에 연결된 컨테이너가 브리지 네트워크에 연결되지 않은 컨테이너와 통신할 수 있도록 하는 소프트웨어 브리지를 사용합니다. Docker 브리지 드라이버는 서로 다른 브리지 네트워크의 컨테이너가 서로 직접 통신할 수 없도록 호스트에 규칙을 자동으로 설치합니다.

브리지 네트워킹은 동일한 Docker 데몬 호스트에서 실행되는 컨테이너에 대해 작동합니다. 다양한 Docker 데몬 호스트에서 실행되는 컨테이너 간에 통신하려면 OS 수준에서 라우팅을 관리하거나 오버레이 네트워크를 사용할 수 있습니다.

Docker를 시작하면 기본 브리지 네트워크(브리지라고도 함)가 자동으로 생성되며, 별도로 지정하지 않는 한 새로 시작된 컨테이너가 여기에 연결됩니다. 사용자 정의된 맞춤형 브리지 네트워크를 생성할 수도 있습니다. 사용자 정의 브리지 네트워크는 기본 브리지 네트워크보다 선호됩니다.

사용자 정의 브리지와 기본 브리지 사이

사용자 정의 브리지는 컨테이너 간 자동 DNS 확인을 제공합니다.

기본 브리지 네트워크의 컨테이너는 레거시로 간주되는 --link 옵션을 사용하지 않는 한 IP 주소를 통해서만 서로 액세스할 수 있습니다. 사용자 정의 브리지 네트워크에서 컨테이너는 이름이나 별칭으로 서로를 확인할 수 있습니다.

웹 프런트엔드와 데이터베이스 백엔드가 있는 애플리케이션을 상상해 보세요. 컨테이너 web 및 db를 호출하면 웹 컨테이너는 애플리케이션 스택이 실행 중인 Docker 호스트에 관계없이 db 컨테이너에 연결할 수 있습니다.

기본 브리지 네트워크에서 동일한 애플리케이션 스택을 실행하는 경우 컨테이너 간의 링크를 수동으로 생성해야 합니다(이전 스타일 --link 플래그 사용). 이러한 링크는 양방향으로 생성되어야 하므로 두 개 이상의 컨테이너가 통신하는 경우 복잡해짐을 알 수 있습니다. 또는 /etc/hosts 컨테이너의 파일을 조작할 수 있지만 이로 인해 디버깅하기 어려운 문제가 발생합니다.

사용자 정의 브리지는 더 나은 격리를 제공합니다.

--network로 지정되지 않은 모든 컨테이너는 기본 브리지 네트워크에 연결됩니다. 관련되지 않은 스택/서비스/컨테이너가 통신할 수 있으므로 이는 위험할 수 있습니다.

사용자 정의 네트워크를 사용하면 네트워크에 연결된 컨테이너만 통신할 수 있는 범위가 지정된 네트워크가 제공됩니다.

컨테이너는 언제든지 사용자 정의 네트워크에 연결하고 분리할 수 있습니다.

컨테이너의 수명 동안 사용자 정의 네트워크에 즉시 연결하거나 연결을 끊을 수 있습니다. 기본 브리지 네트워크에서 컨테이너를 제거하려면 컨테이너를 중지하고 다른 네트워크 옵션을 사용하여 다시 생성해야 합니다.

각 사용자 정의 네트워크는 구성 가능한 브리지를 생성합니다.

컨테이너가 기본 브리지 네트워크를 사용하는 경우 이를 구성할 수 있지만 모든 컨테이너는 MTU 및 iptables 규칙과 같은 동일한 설정을 사용합니다. 또한 기본 브리지 네트워크 구성은 Docker 자체 외부에서 이루어지며 Docker를 다시 시작해야 합니다.

사용자 정의 브리지 네트워크는 docker network create를 사용하여 생성 및 구성됩니다. 여러 애플리케이션 그룹에 서로 다른 네트워크 요구 사항이 있는 경우 각 사용자 정의 브리지를 생성 시 개별적으로 구성할 수 있습니다.

기본적으로 브리지 네트워크의 연결된 컨테이너는 환경 변수를 공유합니다.

처음에 두 컨테이너 간에 환경 변수를 공유하는 유일한 방법은 --linkflag를 사용하여 연결하는 것이었습니다. 이러한 유형의 변수 공유는 사용자 정의 네트워크에서는 불가능합니다. 그러나 환경 변수를 공유하는 고급 방법이 있습니다. 몇 가지 아이디어:

여러 컨테이너가 Docker 볼륨을 사용하여 공유 정보가 포함된 파일이나 디렉터리를 마운트할 수 있습니다.

docker-compose를 사용하면 여러 컨테이너를 함께 시작할 수 있으며 compose 파일은 공유 변수를 정의할 수 있습니다.

독립형 컨테이너 대신 그룹 서비스를 사용하고 공유 비밀 및 구성을 활용할 수 있습니다.

동일한 사용자 정의 브리지 네트워크에 연결된 컨테이너는 모든 포트를 서로 효과적으로 노출할 수 있습니다. 포트가 다른 네트워크의 컨테이너 또는 Docker가 아닌 호스트에 액세스할 수 있으려면 또는 플래그를 사용하여 포트를 게시해야 합니다. -p--게시

국가산업경제플랫폼 연락처: 010-65367702, 이메일: hz@people-energy.com.cn, 주소: 인민일보, No. 2 Jintai West Road, Chaoyang District , 베이징

上篇: 억만장자 아내 하나 사면 하나 공짜 예첸은 왜 양윤을 싫어하나요? 下篇: 과학 기술 발전의 장단점에 관한 100 개의 정보가 있다.
관련 내용