docker:来自守护程序的错误响应:无法创建端点 - 无法添加主机

docker:来自守护程序的错误响应:无法创建端点 - 无法添加主机

Docker 曾经可以工作,但现在每次运行容器都会出错:

docker: Error response from daemon: failed to create endpoint - failed to add host
  • 例子:
    docker run -it debian
    
  • 结果错误:
    docker: Error response from daemon: failed to create endpoint dazzling_ptolemy on network bridge:
            failed to add the host (veth1e8eb9b) <=> sandbox (veth73c911f) pair interfaces:
            operation not supported
    

我已经使用以下命令重新启动了 Docker

systemctl restart docker

我还做了一个网络修剪

docker network prune

似乎什么都不起作用。可能是什么原因?

答案1

为了提供更多具体的比其他人回答。

重新启动有效,因为此问题的根源是缺少活动内核的内核模块文件。

假设您正在运行 kernel linux-image-4.19.0-13-amd64。该软件包将各种二进制内核模块文件安装在/lib/modules/4.19.0-13-amd64.当您加载 Docker 容器时,它会动态加载其中几个模块,特别是如果这是您自上次启动以来启动的第一个容器。

现在假设您将内核升级到linux-image-4.19.0-14-amd64.此时,在等待重新启动之前,您仍在运行linux-image-4.19.0-13-amd64,如果您启动 Docker 容器,它将加载4.19.0-13模块。这应该可以正常工作。

如果你那么问题就来了消除在重新启动之前安装软件包linux-image-4.19.0-13-amd64(并忽略有关“删除正在运行的内核”的可怕警告,因为我很容易这样做)。如果您随后尝试加载这些模块,则会失败,因为/lib/modules正在运行的内核的二进制文件现在丢失了。这就是重新启动修复它的原因 - 重新启动时,您启动到包含这些文件的较新内核。

希望这有助于澄清,因为我自己刚刚遇到了这个问题,需要解决它而不是重新启动系统。

答案2

我还没有花时间找出原因,但你应该只需要重新启动你的机器即可;它对我有用。

在github上搜索发现错误,它链接到不久前的这个 github 问题:https://github.com/moby/moby/issues/15341#issuecomment-218930712

答案3

原因可能是内核更新。内核更新后,您需要重新启动,docker 应该像以前一样工作。

答案4

对我来说,在 CPU 上启用虚拟化解决了这个问题。 x570 芯片组上的 Ryzen 5800。

  1. 开机后按键盘上的“Del”或“F2”,然后按“F7”进入高级模式(ROG系列主板可以直接进入高级模式,无需按“F7”):

  2. 点击【高级】-【CPU配置】:

  3. 请将【SVM Mode】设置为【Enabled】:

详情请点击这里https://www.asus.com/support/FAQ/1038245/

相关内容