我的目标是将对Docker容器的访问限制为仅几个公共IP地址。是否有一个简单,可重复的过程来实现我的目标?在使用Docker的默认选项时仅了解iptables的基础知识,我发现这非常困难。
我想运行一个容器,使其对公共Internet可见,但只允许来自选定主机的连接。我希望将默认的INPUT策略设置为REJECT,然后仅允许来自主机的连接。但是Docker的NAT规则和链妨碍了我的INPUT规则。
在以下假设的基础上,有人可以提供一个示例来说明如何实现我的目标吗?
- 在eth0上托管公共IP 80.80.80.80
- eth1上的主机专用IP 192.168.1.10
docker run -d -p 3306:3306 mysql
- 阻止从主机4.4.4.4和8.8.8.8到主机/容器3306的所有连接
我很高兴将容器仅绑定到本地ip地址,但是需要有关如何正确设置iptables转发规则的说明,这些规则可以在docker进程和主机重启后继续存在。
谢谢!
--ctdir
?我使用-m conntrack --ctstate NEW --ctorigdstport 3306 --ctdir ORIGINAL