如何在没有nat表的情况下启动docker?

时间:2015-11-25 03:49:26

标签: docker

我的系统是

Linux in28-051 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux

但是在我们公司的机器上禁用了nat表。所以当我运行docker -d时,问题是

root@XXXXX:~# docker -d
INFO[0000] +job init_networkdriver()
INFO[0000] +job serveapi(unix:///var/run/docker.sock)
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
Unable to enable network bridge NAT: iptables failed: iptables --wait -t nat -I POSTROUTING -s 172.17.42.1/16 ! -o docker0 -j MASQUERADE: iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
 (exit status 3)
INFO[0000] -job init_networkdriver() = ERR (1)
FATA[0000] Shutting down daemon due to errors:  (exit status 3)

那么,有没有办法在没有nat表的情况下运行docker?

更新:    我知道当我启用nat模块时我可以正常运行docker,但问题是启用nat会对我们的机器造成不良影响。网络吞吐量。所以我想知道,任何方式我都可以使用没有nat模块的docker?或者任何人都可以解释为什么docker必须使用nat模块。

1 个答案:

答案 0 :(得分:3)

好的,我终于找到了答案。 使用follow命令可以启动没有iptables的docker。

docker -d --iptables=False &