docker無法解析域名怎么辦

解決方法:1、用“cat /proc/sys/net/ipv4/ip_forward”查看“/proc”文件系統(tǒng),確認(rèn)系統(tǒng)是否打開ip轉(zhuǎn)發(fā)功能;2、用“echo 1 > /proc/sys/net/ipv4/ip_forward”將文件內(nèi)的內(nèi)容由0修改為1即可打開ip轉(zhuǎn)發(fā)功能;3、修改“/etc/sysctl.conf”文件內(nèi)“ip_forward”的值可以永久修改ip轉(zhuǎn)發(fā)。

docker無法解析域名怎么辦

本教程操作環(huán)境:linux7.3系統(tǒng)、docker19.03版、Dell G3電腦。

docker無法解析域名怎么辦

一直報(bào)unknown host,無法解析域名,來一起看看詳細(xì)的解決方法:

解決方法

1、Linux系統(tǒng)默認(rèn)沒有打開IP轉(zhuǎn)發(fā)功能,要確認(rèn)IP轉(zhuǎn)發(fā)功能的狀態(tài),

可以查看/proc文件系統(tǒng),使用下面命令:

docker無法解析域名怎么辦

出于安全考慮,Linux系統(tǒng)默認(rèn)是禁止數(shù)據(jù)包轉(zhuǎn)發(fā)的。

所謂轉(zhuǎn)發(fā)即當(dāng)主機(jī)擁有多于一塊的網(wǎng)卡時(shí),其中一塊收到數(shù)據(jù)包,根據(jù)數(shù)據(jù)包的目的ip地址將包發(fā)往本機(jī)另一網(wǎng)卡,該網(wǎng)卡根據(jù)路由表繼續(xù)發(fā)送數(shù)據(jù)包。配置Linux系統(tǒng)的ip轉(zhuǎn)發(fā)功能,首先保證硬件連通,然后打開系統(tǒng)的轉(zhuǎn)發(fā)功能

cat /proc/sys/net/ipv4/ip_forward,該文件內(nèi)容為0,表示禁止數(shù)據(jù)包轉(zhuǎn)發(fā),1表示允許。

2、如果上述文件中的值為0,說明禁止進(jìn)行IP轉(zhuǎn)發(fā);

如果是1,則說明IP轉(zhuǎn)發(fā)功能已經(jīng)打開,要想打開IP轉(zhuǎn)發(fā)功能,可以直接修改上述文件:

echo?1?>?/proc/sys/net/ipv4/ip_forward

把文件的內(nèi)容由0修改為1。禁用IP轉(zhuǎn)發(fā)則把1改為0。

3、上面的命令并沒有保存對IP轉(zhuǎn)發(fā)配置的更改,下次系統(tǒng)啟動(dòng)時(shí)仍會(huì)使用原來的值

要想永久修改IP轉(zhuǎn)發(fā),需要修改/etc/sysctl.conf文件,修改下面一行的值:

net.ipv4.ip_forward?=?1

修改后可以重啟系統(tǒng)來使修改生效,也可以執(zhí)行下面的命令來使修改生效:

sysctl?-p?/etc/sysctl.conf

進(jìn)行了上面的配置后,IP轉(zhuǎn)發(fā)功能就永久開啟了

擴(kuò)展知識:

進(jìn)入 Docker 容器后,在 hosts 文件中,配置域名解析。

#?進(jìn)入?docker?容器 docker?exec?-it??my_web?/bin/bash #?修改?hosts?文件 vi?/etc/hosts #?添加域名解析規(guī)則 192.168.99.100??example.test #?利用?ping?命令驗(yàn)證一下,是否可以?ping?通 ping?example.test

如果你的 Docker 宿主主機(jī)沒有 ping 命令,你可以安裝一下;當(dāng)然,如果你不想安裝的話也無所謂,你可以通過其他的方式來驗(yàn)證域名解析是否已經(jīng)得到解決。

需要注意的是:每次重啟容器(服務(wù))后,容器中的 /etc/hosts 文件新增的配置就會(huì)失效,故需要重新配置一下。

推薦學(xué)習(xí):《docker視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享