Docker官方推薦我們通過端口映射的方式把Docker容器的服務提供給宿主機或者局域網其他容器使用。一般過程是:
1、Docker進程通過監聽宿主機的某個端口,將該端口的數據包發送給Docker容器
2、宿主機可以打開防火牆讓局域網其他設備通過訪問宿主機的端口進而訪問docker的端口
但在實際使用中並不是很方便。
以下在win10環境中隊DockerDocker容器通過獨立IP暴露給局域網的方法進行記錄。
Docker的默認啟動方式中,會產生一塊虛擬網卡,然后容器內自行分配單獨的網卡和IP。可以在宿主機上通過ipconfig命令看到這個虛擬網卡。
打開一個容器,可以看到容器ip地址為自動分配的。
通過宿主機無法ping通
通過配置路由表實現ip互通
查看route print
查看docker 的ip地址
暴露給宿主機的為10.0.75.1
添加路由
route -p add 172.17.0.0 MASK 255.255.255.0 10.0.75.2
重新ping容器地址
現在則可以直接通過ip訪問。
由於docker默認采用bridge網絡,每次容器啟動時自動分配ip,我們可以創建自己的網絡bridge1,在創建容器時指定ip,如需獨立ip訪問則另外增加路由。
如
route -p add 172.18.12.0 MASK 255.255.255.0 10.0.75.2
如果刪除路由:
route delete 172.18.12.0