首頁 >運維 >Docker >docker無法解析網域名稱怎麼辦

docker無法解析網域名稱怎麼辦

WBOY
WBOY原創
2022-06-27 10:55:503477瀏覽

解決方法:1、用「cat /proc/sys/net/ipv4/ip_forward」查看「/proc」檔案系統,確認系統是否開啟ip轉送功能;2、用「echo 1 > / proc/sys/net/ipv4/ip_forward」將檔案內的內容由0修改為1即可開啟ip轉發功能;3、修改「/etc/sysctl.conf」檔案內「ip_forward」的值可以永久修改ip轉發。

docker無法解析網域名稱怎麼辦

本教學操作環境:linux7.3系統、docker19.03版、Dell G3電腦。

docker無法解析域名怎麼辦

一直報unknown host,無法解析域名,來一起看看詳細的解決方法:

##解決方法

1、Linux系統預設沒有開啟IP轉送功能,要確認IP轉送功能的狀態,

可以檢視/proc檔案系統,使用下方指令:

docker無法解析網域名稱怎麼辦

出於安全考慮,Linux系統預設是禁止資料包轉送的。

所謂轉送即當主機擁有多於一塊的網卡時,其中一塊收到資料包,根據資料包的目的ip位址將包發送到本機另一網卡,該網卡根據路由表繼續發送數據包。設定Linux系統的ip轉發功能,先確保硬體連通,然後開啟系統的轉發功能

cat /proc/sys/net/ipv4/ip_forward,該檔案內容為0,表示禁止封包轉發,1表示允許。

2、如果上述文件中的值為0,說明禁止進行IP轉送;

#如果是1,則說明IP轉送功能已經開啟,要想打開IP轉送功能,可以直接修改上述檔案:

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

把檔案的內容由0修改為1。停用IP轉送則把1改為0。

3、上​​面的指令並沒有儲存IP轉送設定的更改,下次系統啟動時仍會使用原來的值

要永久修改IP轉送,需要修改/etc/sysctl.conf文件,修改下面一行的值:

net.ipv4.ip_forward = 1

修改後可以重啟系統來使修改生效,也可以執行下面的命令來使修改生效:

sysctl -p /etc/sysctl.conf

進行了上面的設定後,IP轉送功能就永久開啟了

擴充知識:

進入Docker 容器後,在hosts 檔案中,設定網域名稱解析。

# 进入 docker 容器
docker exec -it  my_web /bin/bash
# 修改 hosts 文件
vi /etc/hosts
# 添加域名解析规则
192.168.99.100  example.test
# 利用 ping 命令验证一下,是否可以 ping 通
ping example.test

如果你的 Docker 宿主主機沒有 ping 指令,你可以安裝一下;當然,如果你不想安裝的話也無所謂,你可以透過其他的方式來驗證網域解析是否已經解決。

要注意的是:每次重新啟動容器(服務)後,容器中的 /etc/hosts 檔案新增的設定就會失效,故需要重新設定。

推薦學習:《

docker影片教學

以上是docker無法解析網域名稱怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn