在 Docker Swarm 模式中,您可以创建覆盖网络(overlay network)来实现跨多个 Docker 节点的服务通信。覆盖网络是 Swarm 模式下的一种网络类型,它允许您创建跨多个 Swarm 节点的网络连接。
下面是如何创建一个覆盖网络的步骤:
创建覆盖网络
确保处于 Swarm 模式:
如果您还没有初始化 Docker Swarm,需要先初始化或者加入到一个已经存在的 Swarm 中。可以通过以下命令初始化一个新的 Swarm 主节点(manager):docker swarm init --advertise-addr <IP地址>
创建覆盖网络:
使用docker network create
命令来创建覆盖网络。例如,创建一个名为my-overlay
的覆盖网络:docker network create --driver=overlay --attachable my-overlay
这里
--attachable
参数是可选的,如果使用了这个参数,那么即使是在非管理节点上启动的服务也可以连接到这个网络。
使用覆盖网络启动服务
一旦覆盖网络创建成功,您可以使用该网络来启动服务。例如:
docker service create \
--name web \
--network my-overlay \
--replicas 3 \
nginx:latest
这条命令将会创建一个名为 web
的服务,使用我们之前创建的 my-overlay
网络,并且指定运行三个副本的 Nginx 容器。
查看网络信息
您可以使用 docker network ls
来查看所有的网络,包括覆盖网络:
docker network ls
要查看特定网络的详细信息,可以使用:
docker network inspect my-overlay
删除覆盖网络
当不再需要某个覆盖网络时,可以使用如下命令删除它:
docker network rm my-overlay
请注意,只有在网络未被任何服务使用的情况下才能删除它。
确保在执行上述操作时具有足够的权限,通常这些命令需要以 root 用户或通过 sudo 执行。