docker swarm部署集群
1、 选择一台机器作为主节点
2、 运行命令
docker swarm init --advertise-addr=主节点ip
3、 复制初始化主节点token
4、 在其他子节点机器执行命令
5、 docker swarm join –token param (param为第三步复制token)
6、 docker node ls 查看集群列表
7、 docker swarm leave -f 子节点退出集群
8、 退出集群后的集群列表
9、 创建Docker 服务
docker service create –name demo busybox sh -c “while true;do sleep 3600;done”
创建一个服务,随机运行在集群的某个节点
docker service create:
这部分指示 Docker 命令行工具创建一个新的 Docker 服务。
--name demo:
这个选项指定了服务的名称为 "demo"。你可以使用这个名称来管理或引用这个服务。
busybox:
这是使用的 Docker 镜像的名称。在这个例子中,使用了 "busybox" 镜像。BusyBox 是一个精简的 Linux 发行版,它将许多基本的 Unix 工具打包在一个单一的可执行文件中。
sh -c "while true; do sleep 3600; done":
这是在容器内执行的命令。它启动一个无限循环,其中 while true 语句创建一个始终为真的循环,然后 sleep 3600 让容器每隔 3600 秒(1 小时)休眠一次。这样,容器将永远在后台运行,不会自行退出
10、docker service ls 查看节点docker服务运行列表
表示当前只有一个docker服务
11、docker ps 查看节点docker运行的容器列表
表示当前节点没有运行docker容器
12、docker service scale demo=5 在集群中给demo服务扩容
13、docker service ls 扩容后再次查看节点docker服务运行列表
当前集群demo服务存在5个服务,docker自动分配到节点运行,服务数量如果大于机器数量,有些机器可能会运行多个服务,如果其中某个服务挂掉,docker会自动再起一个服务运行,docker始终保证运行服务数量为5,除非所有机全部挂掉
14、docker stack deploy -c docker-compose.yml stack-demo
stack方式使用docker-compose.yml部署集群
这行命令是用来部署一个 Docker 栈(Docker Stack)的
docker stack deploy: 这是 Docker 命令行工具用来部署一个 Docker 栈的命令。Docker 栈是一个将多个服务组合在一起进行管理的工具,通常用来在集群中部署分布式应用程序。
-c docker-compose.yml: 这个选项指定了 Docker Compose 文件的路径,该文件描述了要部署的服务及其配置。在这个例子中,假设 Docker Compose 文件的名称为 docker-compose.yml,它位于当前工作目录。
stack-demo: 这是要创建或更新的 Docker 栈的名称。通过指定栈的名称,可以对其进行唯一标识和管理
Docker-compose.yml
Visualizer Portainer可视化监控工具
15、docker stack services stack-demo 查看这个
服务还没有创建完成
服务已经创建完成
16、通过任意节点访问可视化工具
17、docker stack rm stack-demo 退出容器