docker路由没有iptables

我有一个运行命令sudo docker run -p 8002:80 nginx的docker nginx镜像

我想知道的是,路由如何从hostmachine:8002转到端口80上监听的容器。通常有非常明确的iptables,但是如果禁用iptables,它仍然可以工作。 然后我注意到有一个docker-proxy进程侦听每个暴露的端口,我会假设代理/ NAT。 所以我用--userland-proxy=false禁用了userland代理。 这样做之后,我现在只能看到一个进程docker-current ,仍在监听所有暴露的端口。 我只能假设docker-current进程正在执行na​​t,但是这让我想知道为什么userland代理和/或iptables在那里? 有没有一种方法,我可以看到/certificate自己在哪里发生的事情(即打开/closures的东西,不能curl我的nginx容器,然后能够)?

为了完整起见,我会回答我自己的问题。

  1. iptables的规则是有希望通过在内核空间自动节省时间,而不是发送给用户空间去做自然的事情。 你可以杀死在端口上侦听的进程,并删除iptables nat规则,而不是从stream量中获得响应,这是我(在其他testing中)能够向我自己certificate发生了什么的。