Dokcer Swarm - 网络沙箱加入失败:“10.0.0.0/24”的子网沙箱加入失败:创建 vxlan 接口时出错:文件存在

Min*_*ơng 7 networking docker docker-swarm

我在 Docker Swarm 上部署我的应用程序时遇到了这个问题。

我运行docker stack deploy -c /path并得到error network sandbox join failed: subnet sandbox join failed for "10.0.0.0/24": error creating vxlan interface: file exists

我在谷歌搜索了太多页面,但没有找到任何解决方案。

Ale*_* A. 13

您可以尝试以下步骤

  1. 检查每个节点中的任何 vx-* 接口 /sys/class/net
$ ls -l /sys/class/net/ | grep vx
Run Code Online (Sandbox Code Playgroud)
  1. 一旦我们有接口 ID 的拉取更多细节
$ udevadm info /sys/class/net/
Run Code Online (Sandbox Code Playgroud)
  1. 如果这些接口存在,我们应该能够安全地删除它们。替换vx-000000-xxxxx为步骤 2 中的接口 ID
$ sudo ip -d link show vx-000000-xxxxx
$ sudo ip link delete vx-000000-xxxxx
Run Code Online (Sandbox Code Playgroud)

等等...

  1. 重新部署服务。


Col*_*cks 13

如果您使用的是 Ubuntu 的树莓派,您可能只是缺少必要的库。您可以使用以下命令安装它们:

sudo apt install linux-modules-extra-raspi
Run Code Online (Sandbox Code Playgroud)

  • 对我来说也是如此。(Pi4 上的 Ubuntu 22.04 LTS) (3认同)
  • 为我工作(Ubuntu 22.04)!蒂 (2认同)

Ngu*_*ung 1

您的主机上的多个网络之间可能存在冲突

您检查过有多少dockerd服务正在运行吗?您的主机上可能有两个 docker 服务正在运行,viaaptsnap

要通过以下方式删除 docker snap

sudo snap remove docker
Run Code Online (Sandbox Code Playgroud)

或者,为了避免创建备份数据:

sudo snap remove --purge docker
Run Code Online (Sandbox Code Playgroud)

通过以下方式删除 dockerapt

sudo apt-get remove docker docker-engine docker.io containerd runc
Run Code Online (Sandbox Code Playgroud)

然后从这里重新安装https://docs.docker.com/engine/install/ubuntu/