docker容器內使用iptables


被測試的應用部署在docker容器里,只主機上iptables drop某個ip后,此ip依然可以訪問容器里的應用,容器里ping ip也可以ping通。所以需要容器里安裝iptables並做響應設置。

這個過程中遇到的問題和解決方法如下:

1. apt-get install iptables遇到certification error. 解決方法參考 https://www.cnblogs.com/imyingzi/p/16139510.html

2. iptables安裝成功之后,iptables --help可以。但iptables -L -n報Permission denied

 

 這是因為docker run 的時候沒有使用 --privileged。可以重現run這個容器,也可以帶--privileged重新exec進入容器

docker exec -it --privileged 容器id /bin/bash

(我不想重新run, 嘗試了網上說的修改容器配置文件hostconfig.json,但不管用,restart 容器"Privileged":就又被置為false了,(試了拷貝到其他地方再考回來什么的都不行))

再iptables -L -n就可以了

3. 在容器里,iptables -I INPUT -p all -s xxx.xx.xx.xxx -j DROP 就可以了

再ping就ping不通了

4. 之后想不屏蔽,先使用iptables -L -n --line-numbers 查看對應規則的number

再 iptables -D INPUT number

 

 

 

 

 

 

 

 

 


免責聲明!

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



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