刚刚意识到Docker似乎绕过了我的iptable规则.我对使用Docker和iptables并不是很不可思议.在最后的日子里尝试了很多不同的事情.还看到最近的docker版本有一个很大的变化,特殊的DOCKER链应该允许我这样做.但是不确定我做错了什么,但它永远不会做我期望它做的事情.
所以我想要的很简单.我希望它表现得像预期的那样.如果我有一个ACCEPT-Rule要通过,如果没有它被阻止.
我的iptable最初看起来像那样(所以在我多次尝试失败之前):
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [779:162776]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -s 1.2.3.4 -p tcp -m tcp --dport 123 -j ACCEPT
-A INPUT -j DROP
COMMIT
Run Code Online (Sandbox Code Playgroud)
希望它完全符合我的要求.只允许访问端口22和80,并允许来自ip 1.2.3.4的端口123.但是,如果我使用"-p 123:123"创建容器,则每个人都可以访问它.任何人都可以帮助我并告诉我如何更改上述文件?
谢谢!
Docker版本:1.6.2
最初离开我的不同尝试不会使问题过于复杂.但是,添加其中至少一个可能会有所帮助.
*nat
:PREROUTING ACCEPT [319:17164]
:INPUT ACCEPT [8:436]
:OUTPUT ACCEPT …Run Code Online (Sandbox Code Playgroud)