Docker映射端口telnet不通的解決過程
問題描述
我在自己虛擬機(jī)的docker上運(yùn)行的容器綁定的端口突然跟我的電腦通不了了,在docker啟動(dòng)之后,我使用了netstat -ntalp | grep 3000 發(fā)現(xiàn)端口監(jiān)聽shi是正常的,然后就到本機(jī)電腦telnet過去發(fā)現(xiàn)不通,
一開始懷疑是不是我重啟過虛擬機(jī)導(dǎo)致防火墻又開啟了(臨時(shí)關(guān)閉),但是在虛擬機(jī)里面啟動(dòng)了個(gè)redis,本機(jī)確實(shí)能telent6379端口的,而且檢查firewalld 和selinux發(fā)現(xiàn)都是處于關(guān)閉狀態(tài),
說明出問題的只是docker的轉(zhuǎn)發(fā)出了問題,那轉(zhuǎn)發(fā)得先看轉(zhuǎn)發(fā)的配置鏈?zhǔn)欠裾_,
需要使用iptables -t nat -nL 命令來查看,看起來是對(duì)的,于是在想會(huì)不會(huì)是其他的有問題。
上網(wǎng)找了網(wǎng)友的資料發(fā)現(xiàn)
可能是轉(zhuǎn)發(fā)得功能沒有開,畢竟Linux轉(zhuǎn)發(fā)要開啟內(nèi)核轉(zhuǎn)發(fā)功能net.ipv4.ip_forward,于是我們可以先檢查內(nèi)核轉(zhuǎn)發(fā)是否打開:
輸入
sysctl net.ipv4.ip_forward發(fā)現(xiàn)

發(fā)現(xiàn)狀態(tài)為0代表內(nèi)核轉(zhuǎn)發(fā)沒有打開,估計(jì)問題就是這個(gè)造成的,于是打開內(nèi)核轉(zhuǎn)發(fā)參數(shù)
是處于沒有打開的狀態(tài)
于是我們需要打開它:
[root@dev1 opt]# echo 1 > /proc/sys/net/ipv4/ip_forward [root@dev1 opt]# sysctl -p
然后本機(jī)再次請(qǐng)求發(fā)現(xiàn)可以telnet通了。
為什么會(huì)出現(xiàn)這個(gè)問題,其實(shí)是因?yàn)閐ocker 的proxy在1.7 版本之后全部都依賴于iptables了,所以docker轉(zhuǎn)發(fā)的時(shí)候?qū)嶋H上是在iptables上創(chuàng)建了一個(gè)轉(zhuǎn)發(fā)規(guī)則,然后根據(jù)這個(gè)轉(zhuǎn)發(fā)規(guī)則來進(jìn)行轉(zhuǎn)發(fā)而iptables需要轉(zhuǎn)發(fā)就必須要開啟網(wǎng)卡轉(zhuǎn)發(fā)功能,也就是net.ipv4.ip_forward要一直處于開啟狀態(tài)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
容器化技術(shù)架構(gòu)jenkins?docker?k8s腳本淺析
本篇博文不是詳細(xì)介紹容器技術(shù)的,而是具體的實(shí)踐。此篇博文分為兩個(gè)階段,分別是ci,cd。包含三部分內(nèi)容,分別是jenkins,docker,k8s的腳本淺析2022-03-03
Windows Docker 部署 SolrCloud的方法步驟
本文主要介紹了Windows Docker 部署 SolrCloud的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10
Gogs+Jenkins+Docker 自動(dòng)化部署.NetCore的方法步驟
這篇文章主要介紹了Gogs+Jenkins+Docker 自動(dòng)化部署.NetCore,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié)
本文主要介紹了Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
使用Docker安全地部署OpenClaw(龍蝦)的詳細(xì)步驟
OpenClaw (龍蝦) 是一個(gè)強(qiáng)大的個(gè)人 AI 助手,它可以連接各種消息平臺(tái)并執(zhí)行工具,本文介紹如何通過 Docker Compose 安全地部署 OpenClaw,并解析其中的關(guān)鍵配置,需要的朋友可以參考下2026-03-03
在Docker Compose中獲取最新鏡像的多種方法總結(jié)
Docker 鏡像是 Docker 容器的基礎(chǔ),鏡像包含了應(yīng)用程序所需的所有文件和依賴,Docker-Compose 默認(rèn)不會(huì)自動(dòng)拉取最新的鏡像版本,這可能會(huì)導(dǎo)致使用過時(shí)的鏡像,從而錯(cuò)過重要的更新,為了確保 Docker-Compose 始終使用最新的鏡像,我們可以采用多種方法,以下將詳細(xì)介紹這些方法2024-08-08

