Docker下启动的容器端口,默认是不受Docker主机的防火墙控制的,之前的文章中,如果是iptables,介绍了如何使用iptables来特别控制docker下容器的端口的防火墙访问,详见:https://blog.terrynow.com/2022/01/03/docker-container-port-iptables-firewall-settings/
如果你的主机是firwalld的防火墙,本人已经测试过,利用防火墙规则比较复杂,很难控制(可以参考这里:https://blog.terrynow.com/2022/05/24/linux-centos7-and-up-firewalld-allow-specific-ip-access-container-ports/),不过摸索到了一个比较简单的方式。
就是创建容器启动的时候,将容器直接指定主机网络,加参数--net host,同时去掉端口映射,例如:
docker run --name redis --net host -d redis
docker compose 下使用:
version: '3.3' services: wordpress: network_mode: "host"
文章评论