久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

docker端口映射及外部無法訪問問題

瀏覽:63日期:2024-11-06 08:59:55

docker容器內(nèi)提供服務(wù)并監(jiān)聽8888端口,要使外部能夠訪問,需要做端口映射。

docker run -it --rm -p 8888:8888 server:v1

此時出現(xiàn)問題,在虛機A上部署后,在A內(nèi)能夠訪問8888端口服務(wù),但是在B卻不能訪問。

這應(yīng)該是由于請求被攔截。

一、查看firewall-cmd --state

如果輸出的是“not running”則FirewallD沒有在運行,且所有的防護策略都沒有啟動,那么可以排除防火墻阻斷連接的情況了。

如果輸出的是“running”,表示當前FirewallD正在運行,需要再輸入下面的命令查看現(xiàn)在開放了哪些端口和服務(wù):

firewall-cmd --list-portsfirewall-cmd --list-services

解決方案有兩種:

1.關(guān)閉FirewallD服務(wù):

如果您不需要防火墻,那直接關(guān)掉FirewallD服務(wù)就好了

systemctl stop firewalld.service

2.添加策略對外打開指定的端口:

比如我們現(xiàn)在要打開對外5000/tcp端口,可以使用下面的命令:

firewall-cmd --add-port=5000/tcp --permanentfirewall-cmd --reload

如果只是臨時打開端口,去掉第一行命令中的“--permanent”參數(shù),那么當再次重啟FirewallD服務(wù)時,本策略將失效。

二、ip轉(zhuǎn)發(fā)沒有打開

sysctl net.ipv4.ip_forward

顯示net.ipv4.ip_forward=0則表示未打開。

三、service iptables打開并攔截了

可關(guān)閉service iptables

service iptables stop

若docker run時出現(xiàn)錯誤:

iptables: No chain/target/match by that name.

則只需重啟docker服務(wù)即可

service docker restart

或者:

#設(shè)置iptables防火墻為開機啟動項 systemctl enable iptables.service#啟動防火墻使配置文件生效 systemctl start iptables.service#停止防火墻 systemctl stop iptables.service#重啟防火墻使配置文件生效 systemctl restart iptables.service

最終版本:

啟動docker并進行端口映射后,docker會在iptables中添加DNAT規(guī)則,將收到的對應(yīng)端口的包轉(zhuǎn)換ip并進行轉(zhuǎn)發(fā),同時添加規(guī)則將所有來自docker網(wǎng)域的ip進行轉(zhuǎn)換。

但是在Centos7上出現(xiàn)docker可以正常訪問外網(wǎng),但是外網(wǎng)發(fā)出的請求在經(jīng)過eth1接收轉(zhuǎn)發(fā)后送達不到docker0,或者送到卻出現(xiàn)(oui Unknown)的狀況。暫時不清楚這到底是為什么經(jīng)過DNAT后無法送達docker0.

最終解決辦法是在啟動docker后,重啟iptables

service iptables restart

清空docker添加的所有規(guī)則,而后添加規(guī)則

iptables -t nat -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE

將所有來自docker的包172.17.0.0/16的ip替換為本機ip并發(fā)送,以達到docker訪問外網(wǎng)的目的。

到此這篇關(guān)于docker端口映射及外部無法訪問問題的文章就介紹到這了,更多相關(guān)docker端口映射及外部訪問內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Docker
相關(guān)文章:
主站蜘蛛池模板: 泊头市| 晋宁县| 乌审旗| 龙门县| 民乐县| 察雅县| 辛集市| 台湾省| 白朗县| 海晏县| 团风县| 教育| 惠州市| 扶绥县| 建昌县| 万安县| 闽清县| 宜川县| 太保市| 博爱县| 微博| 广平县| 白河县| 新宁县| 平乡县| 吉首市| 建昌县| 张家川| 紫阳县| 荃湾区| 北宁市| 个旧市| 封开县| 湖南省| 商都县| 乌苏市| 新民市| 当涂县| 天门市| 和田市| 蛟河市|