宿主機訪問虛擬機器內的Docker靜態IP

zhangsansan957發表於2020-09-29

背景

搭了一個Consul叢集,在Homestead用Docker搭建後,想在物理機可以直接訪問ip:8500 直接訪問Consul的Web頁面。下面記錄下我自己的解決過程

環境

Win10 + Hyper-V + Vagrant

實現目標

宿主機訪問虛擬機器內的Docker獨立IP

IP關係圖解

docker-1
在虛擬機器中建立一個自定義網路

docker network create --subnet=172.18.0.0/24 docker-br0
# 建立一個172.18.0.0網段,網橋的名字命名為docker-br0,這兩個根據自己需要來

檢視容器的ip地址
docker-2

我們在虛擬機器環境下,使用ping訪問172.18.0.2測試是否能通

docker-3

到物理機win10中訪問172.18.0.2,測試是否能訪問
docker-4

虛擬機器開啟路由轉發

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# sysctl -p 檢查是否設定成功
# 設定成功後vagrant需要重啟,後續才能ping通

物理機win10路由表加入172.18.0.0

route add 172.18.0.0 mask 255.255.255.0 192.168.137.200

docker-5

物理機win10再次訪問172.18.0.2

docker-6

注* Consul實際在物理機Windows可以直接用Docker搭建,個人喜好問題。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章