【问题标题】:I can't start the docker service with iptables error我无法使用 iptables 错误启动 docker 服务
【发布时间】:2015-01-30 06:38:08
【问题描述】:

这是我的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

【问题讨论】:

  • lsmod | grep -E 'iptable|nat' 的输出是什么?
  • @Yoel 我已将输出添加到我的问题中。

标签: centos docker iptables nat


【解决方案1】:

# 制作菜单配置

--> 网络支持

--> 网络选项

--> 网络包过滤框架


打开那些 NAT、NF_NAT 相关的选项


重新编译,重启新内核

#全部制作

# make modules_install

# 安装

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

【讨论】:

    【解决方案2】:

    我已经解决了这个问题。我重新编译内核时启用了 'nat' 相关选项,因为该选项在重新编译之前已在内核中删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-04
      • 2018-01-13
      • 2018-04-20
      • 1970-01-01
      • 2020-06-30
      • 2019-04-20
      • 1970-01-01
      • 2011-05-23
      相关资源
      最近更新 更多