1. 程式人生 > 其它 >Docker:正常執行的容器突然埠不通一般檢查方法

Docker:正常執行的容器突然埠不通一般檢查方法

一般情況下會是以下兩個原因

一.iptables規則被修改過:

如果是這個原因,我們可以通過重啟docker,讓iptables轉發規則重新生效,一般可以處理

二.系統引數被修改(net.ipv4.ip_forward這個引數被改成0):

    這個核心引數linux系統預設是0,當我們安裝docker的時候,會被docker改成1,然後實現埠轉發,容器正常執行
	但是docker只是改了記憶體,並沒有生效到配置檔案,所以配置檔案裡面還是0如下:
	sysctl -a |grep "ipv4.ip_forward"     =====> net.ipv4.ip_forward = 1
	cat /etc/sysctl.conf| grep "ipv4.ip_forward"  =====> net.ipv4.ip_forward = 0
	這種情況下,如果有人更改其他引數,然後通過sysctl -p生效,那麼docker改的這個引數會被重新配置為和/etc/sysctl.conf檔案
	裡面的一致,導致埠不通,這個時候需要重啟docker使其再次改為1。
	
	所以我們安裝docker的時候需要先設定這個引數為1,在裝docker命令如下:
	sysctl -w net.ipv4.ip_forward=1
	sed -i "/net.ipv4.ip_forward/ s/0/1/g" /etc/sysctl.conf

我這次忽然伺服器上埠不通的就是因為圖上第一行的引數被改成了0,改回1之後,使用 sysctl -p 命令讓核心引數修改生效,問題解決。


本部落格文章均已測試驗證,歡迎評論、交流、點贊。
部分文章來源於網路,如有侵權請聯絡刪除。
轉載請註明原文連結:https://www.cnblogs.com/sueyyyy/p/15417621.html