解决docker报错:IPv4 forwarding is disabled. Networking will not work.

197 阅读1分钟

怎么解决docker报错:IPv4 forwarding is disabled. Networking will not work.

这个错误通常是由于IPv4转发未启用导致的。要解决此问题,按照以下步骤操作:

检查配置

  1. 检查IPv4转发是否已启用。在终端中运行以下命令:

    sysctl net.ipv4.ip_forward
    

    如果输出为 net.ipv4.ip_forward = 0,则IPv4转发未启用。

  2. 启用IPv4转发。在终端中运行以下命令:

    sudo sysctl net.ipv4.ip_forward=1
    
  3. 永久启用IPv4转发。编辑 /etc/sysctl.conf 文件并添加以下行:

    net.ipv4.ip_forward=1
    

    保存并关闭文件。

  4. 重新加载sysctl配置文件。在终端中运行以下命令:

    sudo sysctl -p
    

现在,重新启动Docker并检查是否已解决问题。

重新启动Docker

  1. 停止Docker服务:
sudo systemctl stop docker
  1. 重新启动Docker服务:
sudo systemctl start docker
  1. 检查Docker服务状态:
sudo systemctl status docker

如果Docker服务正在运行,您应该会看到类似于以下内容的输出:

 docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-05-18 14:22:45 UTC; 4min 12s ago
     Docs: https://docs.docker.com
 Main PID: 12345 (dockerd)
    Tasks: 10
   Memory: 39.2M
   CGroup: /system.slice/docker.service
           ├─12345 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           └─12356 containerd --config /var/run/containerd/containerd.toml --log-level info

如果Docker服务未运行,则应该会看到类似于以下内容的输出:

 docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2021-05-18 14:22:45 UTC; 4min 12s ago
     Docs: https://docs.docker.com
  Process: 12345 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=0/SUCCESS)
 Main PID: 12345 (code=exited, status=0/SUCCESS)