为独立容器创建覆盖网络时出错

时间:2021-04-17 02:45:21

标签: docker docker-swarm docker-networking

根据 Docker 文档,当我们初始化 docker swarm 时,overlay 网络会自动创建。但是我们不能将该网络用于不属于 swarm 资源的单个 docker 容器。因此,我们需要使用“--attachable”标志创建覆盖网络。

我尝试创建可附加的覆盖网络,但出现以下错误:

docker network create -d overlay --attachable my-attachable-overlay 
Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.

我们需要在 swarm manager 上运行这个命令吗?我们不能在不初始化 docker swarm 的情况下直接在 boot2docker 这样的轻量级容器上使用它吗?

1 个答案:

答案 0 :(得分:1)

swarm 范围的覆盖网络驱动程序确实需要 swarm。如果您只有一个节点,则只需执行 docker swarm init,然后您就可以创建一个 swarm 范围的网络。如果您在 swarm 工作节点上收到此错误,那么您只需要在 swarm 中的管理器上创建网络,然后就可以在该 swarm 中的工作节点上使用它。

overlay 网络驱动程序的全部目的是启用 swarm 中多个节点之间的容器到容器通信。在不打算使用任何其他 swarm 功能或与其他节点上的容器通信的单个节点中,没有必要使用覆盖网络驱动程序。改用本地范围的网络驱动程序,例如 bridge