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

标签 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 table 的情况下运行 docker?

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

最佳答案

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

docker -d --iptables=False &

关于docker - 如何在没有 nat 表的情况下启动 docker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33908182/

相关文章:

python - 无法从docker-compose生成django.po文件

docker - 使用Marathon启动nvidia-docker容器

python - ZeroMQ 无法在 [0.0.0.0 :5555] - address already in use. 上的 Docker 上进行 .bind() 为什么?

docker - 选择 Golang docker 基础镜像

docker - 分配网络资源失败

docker - 如何使用Docker覆盖配置文件

macos - Docker端口似乎未在macOS上公开

docker - 更改 docker 自定义网络的默认子网

docker - 从命令行登录到 heroku docker 注册表

docker - 为什么在容器外部无法访问在Compute Engine中运行的Docker实例?