我无法使用 iptables 错误启动 docker 服务

I can't start the docker service with iptables error

这是我的linux版本信息CentOS Linux release 7.0.1406 (Core), 我的 iptables 版本是 v1.4.21

我使用命令 yum install docker 安装 docker 后, 我正在尝试使用命令 service docker start 启动 docker,但我无法启动 docker。

收到的错误信息是

[root@ssd-master ~]# systemctl status docker.service
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
   Active: failed (Result: exit-code) since Fri 2015-01-30 15:20:28 KST; 7s ago
     Docs: http://docs.docker.com
  Process: 54831 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS (code=exited, status=1/FAILURE)
 Main PID: 54831 (code=exited, status=1/FAILURE)

Jan 30 15:20:28 ssd-master docker[54831]: 2015/01/30 15:20:28 docker daemon: 1.3.2 39fa2fa/1.3.2; execdriver: native; graphdriver:
Jan 30 15:20:28 ssd-master docker[54831]: [a20f268b] +job serveapi(fd://)
Jan 30 15:20:28 ssd-master docker[54831]: [a20f268b] +job init_networkdriver()
Jan 30 15:20:28 ssd-master docker[54831]: [info] Listening for HTTP on fd ()
Jan 30 15:20:28 ssd-master docker[54831]: Unable to enable network bridge NAT: iptables failed: iptables --wait -I POSTROUTING -t nat -s 172.17.42.1/16 ! -o ...o insmod?)
Jan 30 15:20:28 ssd-master docker[54831]: Perhaps iptables or your kernel needs to be upgraded.
Jan 30 15:20:28 ssd-master docker[54831]: (exit status 3)
Jan 30 15:20:28 ssd-master docker[54831]: [a20f268b] -job init_networkdriver() = ERR (1)
Jan 30 15:20:28 ssd-master docker[54831]: 2015/01/30 15:20:28  (exit status 3)
Jan 30 15:20:28 ssd-master systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jan 30 15:20:28 ssd-master systemd[1]: Failed to start Docker Application Container Engine.
Jan 30 15:20:28 ssd-master systemd[1]: Unit docker.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.

这是lsmod | grep -E 'iptable|nat|conntrack'

的输出
nf_conntrack_ipv6      18738  4
nf_defrag_ipv6         34841  1 nf_conntrack_ipv6
nf_conntrack_ipv4      14656  0
nf_defrag_ipv4         12758  1 nf_conntrack_ipv4
xt_conntrack           12760  4
nf_conntrack          105026  4 xt_state,xt_conntrack,nf_conntrack_ipv4,nf_conntrack_ipv6
ebtable_nat            12807  0
ebtables               35009  3 ebtable_broute,ebtable_nat,ebtable_filter
iptable_mangle         12695  1
iptable_security       12705  1
iptable_raw            12678  1
iptable_filter         12810  1
ip_tables              27240  4 iptable_security,iptable_filter,iptable_mangle,iptable_raw
iptable_security,iptable_filter,iptable_mangle,iptable_raw

我已经解决了问题。我已经重新编译了带有 'nat' 相关选项的内核,因为在重新编译之前该选项已在内核中删除。

# 制作菜单配置

--> 网络支持

--> 网络选项

--> 网络包过滤框架


打开那些NAT,NF_NAT相关选项


重新编译,重启新内核

#使全部

#使modules_install

# 安装

之后,#lsmod | grep nat ,如果这些模块显示,它应该可以工作。