解決方法: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轉發。
本教學操作環境:linux7.3系統、docker19.03版、Dell G3電腦。
一直報unknown host,無法解析域名,來一起看看詳細的解決方法:
##解決方法
1、Linux系統預設沒有開啟IP轉送功能,要確認IP轉送功能的狀態,
可以檢視/proc檔案系統,使用下方指令: 出於安全考慮,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中文網其他相關文章!