Docker官方推薦我們通過端口映射的方式把Docker容器的服務(wù)提供給宿主機或者局域網(wǎng)其他容器使用。一般過程是:
1、Docker進程通過監(jiān)聽宿主機的某個端口,將該端口的數(shù)據(jù)包發(fā)送給Docker容器
2、宿主機可以打開防火墻讓局域網(wǎng)其他設(shè)備通過訪問宿主機的端口進而訪問docker的端口
但在實際使用中并不是很方便。
以下在win10環(huán)境中隊DockerDocker容器通過獨立IP暴露給局域網(wǎng)的方法進行記錄。
Docker的默認啟動方式中,會產(chǎn)生一塊虛擬網(wǎng)卡,然后容器內(nèi)自行分配單獨的網(wǎng)卡和IP。可以在宿主機上通過ipconfig命令看到這個虛擬網(wǎng)卡。
![](/d/20211016/f672f6d54c9a72ec99ea52e61a6ffafc.gif)
打開一個容器,可以看到容器ip地址為自動分配的。
![](/d/20211016/d24175c658b5d8778013e32253bf9aff.gif)
通過宿主機無法ping通
![](/d/20211016/d7a4289df3bb3db8aca2792ae39cb9bd.gif)
通過配置路由表實現(xiàn)ip互通
查看route print
![](/d/20211016/1b8256af3f34be6e471326b3b59d8e06.gif)
查看docker 的ip地址
![](/d/20211016/cf4c1fdb723d01cc93ec37b20c09cd54.gif)
暴露給宿主機的為10.0.75.1
添加路由
route -p add 172.17.0.0 MASK 255.255.255.0 10.0.75.2
![](/d/20211016/f0c454fc3becbbb04d66d9cd8774e32e.gif)
重新ping容器地址
![](/d/20211016/5e2ff77752febb1e54f2473325ace978.gif)
現(xiàn)在則可以直接通過ip訪問。
由于docker默認采用bridge網(wǎng)絡(luò),每次容器啟動時自動分配ip,我們可以創(chuàng)建自己的網(wǎng)絡(luò)bridge1,在創(chuàng)建容器時指定ip,如需獨立ip訪問則另外增加路由。
如
route -p add 172.18.12.0 MASK 255.255.255.0 10.0.75.2
如果刪除路由:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。