如上图所示, 三台主机:恢复到docker的快照; 然后上传到三台服务器所需的镜像; 同步会话。执行导入脚本将镜像导入到系统中; 然后取消会话的同步,设置各个主机的主机名; 然后同步会话修改hosts文件; 查看防火墙和内核安全机制; 实验环境永久关闭即可; 生产环境需添加相应的策略;tcp/udp 然后在任意一个节点创建集群,在哪个节点创建,哪个节点就是manager; 其他节点如何成为manager,提升权限即可; 先将swarm初始化; 会提示如下语句: 大概意思就是当前101节点成为了集群的manager; 如果其他节点也想添加到集群,要执行以下指令: 利用2377/tcp端口加入到manager节点的集群中; docker swarm join --token SWMTKN-1-5i733918jgh6glcmae1afkr5mhafyjocyv6kn7o68gmlc6l4io-9dt4s9otn66zsecgxfdk6muy1 192.168.10.101:2377 复制提示的命令在其他节点执行一下; 提示这个节点加入到了一个集群且是worker; 查看docker主机的信息,从中找到集群的信息; 节点的ID 集群的ID 节点数量:3 数据通信端口:4789 其他节点也可以查看相关的信息,只不过会显示不是manager; 以及可以列出集群节点; AVAILABILITY栏的三种状态: active:能运行容器的。 pause:当前容器继续运行,新调度来的容器不进行接收。 drain:新调度的容器不接收,且原有的容器迁移到其他节点。 如何修改manager节点的工作方式: 如果想要容器运行在指定的节点上,那么就要针对该节点打一个标签; 标签是一个键值对的格式;适用于docker和k8s中。 然后查看swarm中指定节点的详细信息; 通过查看到Labels为复数,就可以得知每一个节点可以有多个标签; 然后尝试在swarm中运行容器给指定的节点; 其中要访问可信镜像站拉取一个nginx的镜像; 如何获取?可以查看之前的博文; 通过查看命令可以看出,于compose中的概念基本相同,都是以服务的方式运行一组容器; 查看指定的服务; 在指定运行的节点上查看运行的容器: 红色框框中是最终运行起来的容器的名字; 但是在worker节点查看服务会提示该节点不是swarm的manager; 请提升当前节点到manager; 然后可以在manager节点上提升另外两个节点为manager; 再查看就有权限了; 如何降权??? 然后在manager节点上查看节点的信息; 但是leader仍然是创建swarm时所在的主机,即101; 其他节点也可以成为管理的入口; 如何解散集群和脱离集群; 了解即可不需要使用,如果使用了还要重新搭建集群,或者重新加入到集群中; 解散集群要在leader主机上执行; 而脱离集群在需要脱离集群的节点上执行即可; 如何创建副本; 查询: 查询跑在了哪个节点上; 查询服务的详细信息; 默认是json格式的; 可以使用--pretty(漂亮)的选项显示更直观的方式查看; 对服务进行扩容; 对服务缩容: 移除服务: 滚动更新: 先创建redis的服务,三个副本; 如何滚动更新: 针对镜像进行替换; 可高可低; OverLay: 先创建网络; 然后创建容器的时候,加入网络; 数据卷管理: 单纯的数据卷的方式: 先创建数据卷; 在创建容器的时候加入到数据卷中; 但是这种方式;同一个服务中的两个副本的数据不能共享; NFS的方式: 在manager节点作为服务器端,worker节点作为客户端; 然后同步会话,安装nfs的包; 之后创建共享目录; 然后取消回话同步,在manage节点上书写nfs的配置文件;