Docker
도커 - 네트워크 모드 (브리지, 핫, 매핑 된 컨테이너 및 없음).
수색…
소개
시작하기
Bridge Mode 기본값이며 docker0 브리지에 연결됩니다. 컨테이너를 완전히 다른 네트워크 네임 스페이스에 놓습니다.
호스트 모드 컨테이너가 호스트에서 실행되는 프로세스 일 때 컨테이너를 호스트 NIC에 연결합니다.
매핑 된 컨테이너 모드이 모드는 기본적으로 새 컨테이너를 기존 컨테이너 네트워크 스택에 매핑합니다. '컨테이너 모드의 컨테이너'라고도합니다.
없음 도 커가 컨피규레이션없이 자체 네트워크 스택에 컨테이너를 넣는 것을 알려줍니다.
브리지 모드, 호스트 모드 및 매핑 된 컨테이너 모드
브리지 모드
$ docker run –d –-name my_app -p 10000:80 image_name
이것은 docker의 기본 작업 모드이기 때문에 --net = bridge 를 지정할 필요가 없었습니다. 이렇게하면 동적 포트를 할당하지 않고 동일한 컨테이너에서 여러 컨테이너를 실행할 수 있습니다. 따라서 BRIDGE 모드는 포트 충돌을 피하고 각 컨테이너가 자체 네트워크 네임 스페이스를 실행하는 것이 안전합니다.
호스트 모드
$ docker run –d –-name my_app –net=host image_name
호스트 네임 스페이스를 사용하므로 특별한 설정이 필요하지 않지만 보안 문제가 발생할 수 있습니다.
매핑 된 컨테이너 모드
이 모드는 기본적으로 새 컨테이너를 기존 컨테이너 네트워크 스택에 매핑합니다. 이는 IP 주소 및 첫 번째 컨테이너의 포트 매핑과 같은 네트워크 리소스가 두 번째 컨테이너에 의해 공유됨을 의미합니다. 이것은 '컨테이너의 컨테이너'모드라고도합니다. web_container_1 및 web_container_2와 같은 두 개의 경쟁자가 있다고 가정하고 매핑 된 컨테이너 모드에서 web_container_2를 실행합니다. 먼저 web_container_1을 다운로드하고 다음 명령을 사용하여 분리 모드로 실행하십시오.
$ docker run -d --name web1 -p 80:80 USERNAME/web_container_1
다운로드가 끝나면 살펴보고 실행 여부를 확인하십시오. 여기서는 기본 브리지 모드에서 실행중인 컨테이너에 포트를 매핑했습니다. 이제 매핑 된 컨테이너 모드에서 두 번째 컨테이너를 실행 해 봅시다. 우리는이 명령으로 그렇게 할 것입니다.
$ docker run -d --name web2 --net=container:web1 USERNAME/web_container_2
이제 두 경쟁자 모두에 대한 인터페이스 정보 만 얻으면 동일한 네트워크 구성을 갖게됩니다. 이것은 실제로 호스트의 정확한 정보와 매핑되는 HOST 모드를 포함합니다. 첫 번째 컨테이너는 기본 브리지 모드에서 실행되고 두 번째 컨테이너는 매핑 된 컨테이너 모드에서 실행됩니다. 호스트 모드에서 첫 번째 컨테이너를 시작하고 매핑 된 컨테이너 모드에서 두 번째 컨테이너를 시작하면 매우 유사한 결과를 얻을 수 있습니다.