Docker에는 네 가지 네트워크 모드가 있습니다. 즉, 호스트 모드 컨테이너는 호스트의 IP와 포트 번호를 공유하고, 컨테이너 모드는 컨테이너 IP 주소와 포트를 공유하며, 없음 모드 컨테이너에는 네트워크 카드 및 기타 정보가 없으며 브리지 모드 컨테이너는 직접 사용할 수 있습니다. 서로 소통합니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.
Docker에는 여러 가지 네트워크 모드가 있습니다.
Docker는 Linux 브리징("Linux 가상 네트워크 기술" 참조)을 사용하여 호스트에서 Docker 컨테이너 브리지(docker0)를 가상화합니다. Docker는 컨테이너를 시작할 때 네트워크 세그먼트를 기반으로 합니다. Docker 브리지의 컨테이너에는 Container-IP라는 IP 주소가 할당되며 Docker 브리지는 각 컨테이너의 기본 게이트웨이입니다. 동일한 호스트의 컨테이너는 모두 동일한 네트워크 브리지에 연결되어 있으므로 컨테이너는 컨테이너의 Container-IP를 통해 직접 통신할 수 있습니다.
Docker 브리지는 호스트에 의해 가상화되며 실제 네트워크 장치가 아닙니다. 이는 외부 네트워크에서 주소를 지정할 수 없으며 이는 외부 네트워크가 직접 Container-IP를 통해 컨테이너에 액세스할 수 없음을 의미합니다. 컨테이너가 외부에서 접근 가능하도록 하려면 컨테이너 포트를 호스트 호스트에 매핑(포트 매핑)하면 됩니다. 즉, docker run이 컨테이너를 생성할 때 -p 또는 -P 매개 변수를 통해 활성화하고 [host IP] 컨테이너에 접속할 때 : [컨테이너 포트] 컨테이너에 접속합니다.
네 가지 유형의 네트워크 모드
호스트 모드
컨테이너를 시작할 때 호스트 모드를 사용하면 컨테이너는 독립적인 네트워크 네임스페이스를 얻지 못하지만 호스트와 네트워크 네임스페이스를 공유합니다. 컨테이너는 자체 네트워크 카드를 가상화하거나 자체 IP를 구성하는 등의 작업을 수행하지 않지만 호스트의 IP와 포트를 사용합니다. 그러나 파일 시스템, 프로세스 목록 등과 같은 컨테이너의 다른 측면은 여전히 호스트에서 격리되어 있습니다.
호스트 모드를 사용하는 컨테이너는 호스트의 IP 주소를 직접 사용하여 외부 세계와 통신할 수 있습니다. 컨테이너 내부의 서비스 포트도 NAT 없이 호스트의 포트를 사용할 수 있다는 점은 호스트의 가장 큰 장점은 네트워크 성능입니다. 더 좋지만, Docker Host 한 번 사용한 포트는 다시 사용할 수 없고, 네트워크 격리도 좋지 않습니다.
호스트 모드는 아래 그림과 같습니다.
컨테이너 모드
이 모드는 새로 생성된 컨테이너가 호스트와 공유하는 것이 아니라 기존 컨테이너와 네트워크 네임스페이스를 공유하도록 지정합니다. 새로 생성된 컨테이너는 자체 네트워크 카드를 생성하고 자체 IP를 구성하는 것이 아니라 지정된 컨테이너와 IP, 포트 범위 등을 공유합니다. 마찬가지로 네트워크 외에도 두 컨테이너는 파일 시스템, 프로세스 목록 등과 같은 다른 측면에서도 격리됩니다. 두 컨테이너의 프로세스는 lo 네트워크 카드 장치를 통해 통신할 수 있습니다.
컨테이너 모드 다이어그램:
없음 모드
없음 모드를 사용하면 Docker 컨테이너에 자체 네트워크 네임스페이스가 있지만 Docker 컨테이너에 대해 네트워크 구성이 수행되지 않습니다. 즉, 이 Docker 컨테이너에는 네트워크 카드, IP, 라우팅 및 기타 정보가 없습니다. Docker 컨테이너에 네트워크 카드를 추가하고 IP를 구성하는 등의 작업을 직접 수행해야 합니다.
이 네트워크 모드에서 컨테이너에는 lo 루프백 네트워크만 있고 다른 네트워크 카드는 없습니다. none 모드는 컨테이너를 생성할 때 --network=none을 통해 지정할 수 있습니다. 이러한 유형의 네트워크는 인터넷에 연결할 수 없습니다. 폐쇄형 네트워크는 컨테이너의 보안을 보장할 수 있습니다.
없음 모드 다이어그램:
브리지 모드
Docker 프로세스가 시작되면 docker0이라는 가상 브리지가 호스트에 생성되고 이 호스트에서 시작된 Docker 컨테이너는 이 가상 네트워크에 연결됩니다. 다리. 가상 브리지는 물리적 스위치와 유사하게 작동하므로 호스트의 모든 컨테이너가 스위치를 통해 레이어 2 네트워크에 연결됩니다.
docker0 서브넷의 IP를 컨테이너에 할당하고 docker0 IP 주소를 컨테이너의 기본 게이트웨이로 설정합니다. 호스트에 가상 네트워크 카드 veth 쌍 장치 쌍을 만듭니다. Docker는 새로 생성된 컨테이너에 veth 쌍 장치의 한쪽 끝을 배치하고 이름을 eth0(컨테이너의 네트워크 카드)으로 지정하고 다른 쪽 끝을 비슷한 이름으로 호스트에 지정합니다. vethxxx와 같이 이 네트워크 장치의 이름을 지정하고 docker0 브리지에 추가합니다. brctl show 명령을 통해 볼 수 있습니다.
브리지 모드는 docker의 기본 네트워크 모드입니다. --net 매개변수를 쓰지 않으면 브리지 모드입니다. docker run -p를 사용하면 docker는 실제로 iptables에 DNAT 규칙을 만들어 포트 전달 기능을 구현합니다. iptables -t nat -vnL을 사용하여 볼 수 있습니다.
브리지 모드는 아래 그림과 같습니다.
추천 학습: "docker video tutorial"
위 내용은 Docker에는 여러 네트워크 모드가 있습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

LXC는 Docker의 기초이며 Linux 커널의 CGroup 및 네임 스페이스를 통해 자원 및 환경 격리를 실현합니다. 1) 자원 격리 : CGroups는 CPU, 메모리 및 기타 리소스를 제한합니다. 2) 환경 격리 : 네임 스페이스는 독립적 인 프로세스, 네트워크 및 파일 시스템보기를 제공합니다.

Linux에서 Docker를 사용하는 모범 사례에는 다음이 포함됩니다. 1. Dockerrun 명령을 사용하여 컨테이너 작성 및 실행, 2. DockerCompose를 사용하여 다중 컨테이너 응용 프로그램, 3. 정기적으로 사용되지 않은 이미지 및 컨테이너, 4. 멀티 스테이지 구조를 사용하여 이미지 크기를 최적화하기 위해 컨테이너 리소스 사용량을 제한하여 보안을 개선하기 위해 Dockerfile 모범 사례를 개선하십시오. 이러한 관행은 사용자가 Docker를 효율적으로 사용하고 일반적인 문제를 피하고 컨테이너화 된 응용 프로그램을 최적화하는 데 도움이 될 수 있습니다.

Linux에서 Docker를 사용하면 개발 및 배포 효율성을 향상시킬 수 있습니다. 1. Docker 설치 : 스크립트를 사용하여 Ubuntu에 Docker를 설치하십시오. 2. 설치 확인 : Sudodockerrunhello-World를 실행하십시오. 3. 기본 사용 : Nginx 컨테이너 생성 Dockerrun-Namemy-Nginx-P8080 : 80-Dnginx. 4. 고급 사용 : DockerFile을 사용하여 사용자 정의 이미지를 만들고 빌드 및 실행하십시오. 5. 최적화 및 모범 사례 : 다단계 빌드 및 dockercompose를 사용하여 Dockerfiles를 작성하기위한 모범 사례를 따르십시오.

Docker 모니터링의 핵심은 주로 CPU 사용, 메모리 사용, 네트워크 트래픽 및 디스크 I/O와 같은 지표를 포함하여 컨테이너의 작동 데이터를 수집하고 분석하는 것입니다. Prometheus, Grafana 및 Cadvisor와 같은 도구를 사용하면 컨테이너의 포괄적 인 모니터링 및 성능 최적화를 달성 할 수 있습니다.

Dockerswarm은 확장 가능한 고도로 컨테이너 클러스터를 구축하는 데 사용될 수 있습니다. 1) Dockers -Warminit을 사용하여 떼 클러스터를 초기화하십시오. 2) Swarm 클러스터에 가입하여 Dockers-Warmjoin-Token을 사용하십시오. 3) DockerserviceCreate-namemy-nginx-replicas3nginx를 사용하여 서비스를 만듭니다. 4) DockerstackDeploy-Cdocker-Compose.ymlmyapp을 사용하여 복잡한 서비스를 배포합니다.

Docker 및 Kubernetes를 사용하여 Enterprise Applications의 컨테이너 오케스트레이션을 수행하는 방법은 무엇입니까? 다음 단계를 통해 구현하십시오. Docker 이미지를 만들고 DockerHub로 푸시하십시오. Kubernetes에서 배포 및 서비스를 작성하여 응용 프로그램을 배포하십시오. 외부 액세스를 관리하기 위해 Insress를 사용하십시오. 성능 최적화 및 다단장 구성 및 자원 제약과 같은 모범 사례를 적용하십시오.

Docker FAQ는 다음 단계를 통해 진단 및 해결할 수 있습니다. 1. 컨테이너 상태 및 로그보기, 2. 네트워크 구성 확인, 3. 볼륨이 올바르게 장착되도록하십시오. 이러한 방법을 통해 Docker의 문제는 빠르게 위치하고 고정되어 시스템 안정성과 성능을 향상시킬 수 있습니다.

Docker는 DevOps 엔지니어에게 필수 기술입니다. 1. Docker는 포장 애플리케이션 및 컨테이너에 대한 종속성을 통해 격리 및 휴대 성을 달성하는 오픈 소스 컨테이너화 플랫폼입니다. 2. Docker는 네임 스페이스, 제어 그룹 및 연합 파일 시스템과 함께 작동합니다. 3. 기본 사용에는 컨테이너 생성, 실행 및 관리가 포함됩니다. 4. 고급 사용법에는 DockerCompose를 사용하여 다중 컨테이너 응용 프로그램을 관리하는 것이 포함됩니다. 5. 일반적인 오류에는 컨테이너 고장, 포트 매핑 문제 및 데이터 지속성 문제가 포함됩니다. 디버깅 기술에는 로그보기, 컨테이너 입력 및 자세한 정보보기가 포함됩니다. 6. 성능 최적화 및 모범 사례에는 이미지 최적화, 리소스 제약 조건, 네트워크 최적화 및 Dockerfile 사용을위한 모범 사례가 포함됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

드림위버 CS6
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
