🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 概念 ### Swarm 这里就是指计算机集群(cluster)在用Docker连接后的状态。`docker swarm`命令可以创建、加入、离开一个集群。 ### Node 节点 1. Node分为两类:Manager(管理节点)和Worker(工作节点)。 2. 一个Swarm至少要有一个Manager,部分管理命令只有在Manager上才能使用。 比如,在Manager才能使用`docker node`命令可以查看、配置、删除Node。 3. 两类Node都可以运行Service,但只有Manager上才能执行运行命令。 ### Stack 1. Stack是一组Service,和[docker-compose](https://docs.docker.com/compose/reference/overview/)类似。 2. 默认情况下,一个Stack共用一个Network,相互可访问,与其它Stack网络隔绝。 这个概念只是为了编排的方便。3. `docker stack`命令可以方便地操作一个Stack,而不用一个一个地操作Service。 ### Service 1. Service是一类容器。 对用户来说,Service就是与Swarm交互的最核心内容。 2. Service有两种运行模式,一是`replicated`,指定一个Service运行容器的数量; 二是`global`,在所有符合运行条件的Node上,都运行一个这类容器。 3.`docker service`命令可以操作Swarm中的Service。 ### Task 1. Task就是指运行一个容器的任务,是Swarm执行命令的最小单元。 要成功运行一个Service,需要执行一个或多个Task(取决于一个Service的容器数量),确保每一个容器都顺利启动。 2. 通常用户操作的是Service,而非Task。 ### Load balancing 1. Load balancing即负载均衡,也包含反向代理。 2. Swarm使用的是Ingress形式的负载均衡,即访问每个节点的某个Published端口,都可自动代理到真正的服务。 ## 语法 ``` ca Display and rotate the root CA init Initialize a swarm join Join a swarm as a node and/or manager join-token 查看加入管理节点或work节点的命令 ( docker swarm join-token [OPTIONS] (worker|manager)) leave Leave the swarm unlock Unlock swarm unlock-key Manage the unlock key update Update the swarm ``` ## 命令 ### `swarm init` 创建集群 ``` $ docker swarm init --listen-addr 0.0.0.0 Swarm initialized: current node (a1tno675d14sm6bqlc512vf10) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3sp9uxzokgr252u1jauoowv74930s7f8f5tsmm5mlk5oim359e-dk52k5uul50w49gbq4j1y7zzb 172.18.144.188:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. ``` ### 查看加入集群manager管理节点的命令 ``` $ docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-3sp9uxzokgr252u1jauoowv74930s7f8f5tsmm5mlk5oim359e-7tdlpdnkyfl1bnq34ftik9wxw 172.18.144.188:2377 ``` ### 查看加入集群worker节点的命令 ``` $ docker swarm join-token worker To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3sp9uxzokgr252u1jauoowv74930s7f8f5tsmm5mlk5oim359e-dk52k5uul50w49gbq4j1y7zzb 172.18.144.188:2377 ```