Docker compose:必须在Docker计算时禁用防火墙并重新启动Docker服务

Docker compose:必须在Docker计算时禁用防火墙并重新启动Docker服务,docker,docker-compose,ubuntu-18.04,Docker,Docker Compose,Ubuntu 18.04,我开始学习如何使用Docker和Docker compose,每次重新启动计算机时,我在进行Docker compose时都会收到以下消息: 使用默认驱动程序创建网络“dockerlemp_default” 错误:未能编程筛选器链:iptables失败:iptables--wait-I FORWARD-o br-74bd0d3628e8-j DOCKER:iptables v1.6.1:无法加载目标“DOCKER”:没有这样的文件或目录 有关更多信息,请尝试“iptables-h”或“iptab

我开始学习如何使用Docker和Docker compose,每次重新启动计算机时,我在进行Docker compose时都会收到以下消息:

使用默认驱动程序创建网络“dockerlemp_default”

错误:未能编程筛选器链:iptables失败:iptables--wait-I FORWARD-o br-74bd0d3628e8-j DOCKER:iptables v1.6.1:无法加载目标“DOCKER”:没有这样的文件或目录

有关更多信息,请尝试“iptables-h”或“iptables--help”

一旦通过执行命令
sudo ufw disable
禁用了防火墙,并且通过命令
systemctl restart docker
重新启动了docker服务,我就可以正常编写docker了。 但我每次重启都要这么做

有人能解释一下iptables的问题是什么,以及如何解决这个问题吗? 多谢各位

仅供参考,以下是我的设置:

联想Ideapad 510S-08ISH-英特尔(R)核心(TM)i5-6400处理器@2.70GHz

Ubuntu 18.04.3 LTS仿生(窗口管理器i3wm)

Docker 18.09.7

docker compose 1.17.1


即使在Debian/Ubuntu上,Docker的最新版本也确实以足够正确的方式使用了
iptables
的规则(你不使用
selinux
,是吗?)。因此,此错误意味着某些libs/config被破坏。请尝试以下步骤:

  • 检查链
    DOCKER
    是否出现在
    iptables
    的规则中(
    iptables--list rules | grep'\-N\DOCKER'
    )。如果没有,则可以将命令
    iptables-N DOCKER
    添加到
    If-pre-up
    脚本(
    /etc/network/If-pre-up.d/iptables
    )。这只是权宜之计,更好的解决方案是重新安装
    iptables
    和/或
    docker
    后者取决于您如何安装它。也许改变方法(
    apt get install docker.io
    而不是
    wget-qO-https://get.docker.com/ |sh
    ,反之亦然)。在这种情况下,别忘了先卸载Docker
  • 如果出现
    DOCKER
    链,则检查
    If-pre-up
    脚本中是否有
    iptables restore
    命令(通常为
    /etc/network/If-pre-up.d/iptables
    )。如果是,则尝试为
    iptables restore
    或甚至临时禁用
    iptables restore
    重新创建源文件
  • 检查Docker配置(
    /etc/Docker/daemon.json
    /etc/default/Docker
    )。也许某个应用程序在那里编写了一些不需要的选项