docker 호스트 간 용기 통신을 어떻게 실현합니까 (방법 2)

1873 단어
호스트 이름
숙박 호스트 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 테스트
 
문제 해결!!!
 
 
 
 
 

좋은 웹페이지 즐겨찾기