docker 호스트 간 용기 통신을 어떻게 실현합니까 (방법 2)
숙박 호스트 IP
컨테이너 할당망 세그먼트
부트 컨테이너의 IP
testa
192.168.1.105
172.172.0.0/24
172.172.0.10
testb
192.168.1.106
172.172.1.0/24
172.172.1.10
1. 테스트 호스트에 docker 브리지 네트워크 만들기
docker network create --subnet=172.172.0.0/24 docker-br0
2.testb 호스트에 docker 브리지 네트워크 만들기
docker network create --subnet=172.172.1.0/24 docker-br0
비고: 여기는 172.172.0.0 세그먼트를 선택했습니다. 다른 임의의 빈 세그먼트를 지정할 수도 있습니다. docker-br0은 사용자 정의 브리지의 이름으로 임의로 이름을 붙일 수 있습니다.주의: 여기 서브넷 마스크는 255.255.255.0, 즉 IP 뒤에 있는 24를 사용해야 합니다. 왜냐하면 뒤에 IPtables 설정 루트표를 사용해야 하기 때문에 저는 255.255.0.0을 사용해서 설정할 수 없습니다.그래서 여기는 24.브리지를 만든 후, ifconfig를 사용하면 브리지가 하나 더 생겨납니다. 이 브리지는 docker가 시작하거나 다시 시작하면 자동으로 표시됩니다.영구적으로 docker network rm docker-br0을 사용하여 브리지를 제거할 수 있습니다.
3. 테타 호스트에서 사용자가 정의한 네트워크 구간에서 용기 IP를 시작할 수 있도록 임의의 IP 주소를 선택하십시오
docker run -i -d --net docker-br0 --ip 172.172.0.10 --name test1 3bee3060bfc8 /bin/bash
testb 호스트에서 사용자 정의 네트워크 구간을 시작할 용기 IP로 임의의 IP 주소를 선택하십시오
docker run -i -d --net docker-br0 --ip 172.172.1.10 --name test2 3bee3060bfc8 /bin/bash
4. 테스트 호스트에 들어가는 docker
docker exec -it test1 /bin/bash
테스트b 호스트에 들어가는 docker
docker exec -it test2 /bin/bash
5 구성 라우팅 테이블
# 라우팅 규칙 ip route add 상대 컨테이너가 있는 ip 세그먼트/서브넷 마스크 추가 via 상대 가상 머신 ip dev 어느 카드를 통해 통신하는지
테스트 호스트 중
ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736
테스트b 호스트
ip route add 172.172.172.0/24 via 192.168.1.105 dev eno16777736 추가가 완료된 후,route 명령을 사용하여 추가된 규칙을 볼 수도 있고, ip route del 172.172.172.1.0/24 공유 규칙을 제거할 수도 있습니다.
6 호스트 컨테이너 간 상호 ping 테스트
문제 해결!!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.