如何進入docker容器和網絡的netns命名空間


docker使用namespace實現網絡,計算等資源的隔離,當需要排查網絡問題時,使用p netns命令卻無法在主機上看到任何network namespace,這是因為默認docker把創建的網絡命名空間鏈接文件隱藏起來了,導致ip netns命令無法讀取,給分析網絡原理和排查問題帶來了麻煩。

下面是恢復netns命名空間的辦法。

恢復容器的netns

執行下面的命令來獲取容器進程號

docker inspect 容器|grep Pid

獲取容器的進程號

執行如下命令,將進程網絡命名空間恢復到主機目錄,

ln -s /proc/容器進程號/ns/net /var/run/netns/容器

如果/var/run/netns目錄不存在,以root用戶手動創建目錄即可。

然后執行ip netns命令即可看到容器的網絡命名空間。可執行網絡相關命令來排查網絡情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM