默認啓動docker鏡像後,如果映射端口的話,外網常常也可以訪問,但是爲什麼不過宿主機的防火牆呢,
原因是創建docker的時候它自動添加iptable規則
還有一個nat映射
這裏的192.168.1.252是我的宿主機,如果-p 6379:6379的話默認是都可以訪問的容器的,所以我改成了這樣
${shost}配置在.env文件中
這樣的話,就可以通過訪問192.168.1.252:6379這個來訪問容器了。
如何做:以centos7爲例
步驟:
1、開啓防火牆需要開啓的端口 比如6379 3306
2、刪除docker創建鏡像的時候生成的iptables規則
iptables -F DOCKER
這樣的話,如果你防火牆沒有開對應容器需要映射的端口的話,是不能直接訪問的,增加了安全係數。
映射端口的時候最好不要用默認的端口,防止掃描工具掃描攻擊。
擴展:firewall和iptables 最終都是操作netfilter來實現過濾的