在 Docker Swarm 中,网络(networks)是用于容器间通信的基础。当你创建一个服务时,默认情况下,该服务会被连接到一个默认的 overlay 网络,这个网络允许集群中的任何节点上的任务进行通信。
如果你需要更复杂的网络配置,例如自定义网络名称或者使用用户定义的网络来限制特定服务之间的通信,你可以创建自己的 overlay 网络,并在创建服务时指定该网络。
以下是如何在 Docker Swarm 中使用网络的基本步骤:
创建网络:
使用docker network create
命令可以创建一个用户定义的网络。例如,创建一个名为my-overlay-net
的 overlay 网络:docker network create --driver=overlay my-overlay-net
创建服务并指定网络:
当你使用docker service create
或docker stack deploy
创建服务时,可以通过--network
标志来指定你的网络。例如,如果要创建一个名为my-service
的服务,并且希望它使用my-overlay-net
网络,你可以这样做:docker service create \ --name my-service \ --network my-overlay-net \ nginx:latest
检查网络状态:
使用docker network ls
可以查看所有可用的网络,而docker network inspect <network_name>
可以获取关于某个网络的详细信息。删除网络:
如果不再需要某个网络,可以使用docker network rm <network_name>
命令来删除它。请注意,在删除网络之前,必须确保没有服务正在使用它。
需要注意的是,在使用用户定义的网络时,只有当网络处于活跃状态并且没有其他服务依赖于它时,才能将其删除。如果你的服务部署在一个或多个节点上,并且这些服务尝试访问它们不再存在的网络,那么这些服务将无法正常运行。
以上就是在 Docker Swarm 中管理和使用网络的基本操作。如果你有更复杂的需求,比如配置网络策略或者与其他网络隔离等,你可能还需要查阅更详细的文档来了解如何配置高级网络选项。