docker swarm 是什么?
swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。
docker swarm 跟 k8s 一样,只是swarm比k8s上手简单,当然功能上也比k8s少一些,对于一些小型企业也够用了。
docker swarm的一些概念
node节点:swarm是一系列节点的集合,而节点可以是一台裸机或者一台虚拟机。一个节点能扮演一个或者两个角色,manager或者worker。
service:是一个抽象的概念,它只是一个对运行在swarm集群上的应用服务,所期望状态的描述。也可以看作就是你希望运行的一个服务,比如一个nginx服务。
stack:stack 是一组服务的集合。
Yaml文件:服务定义文件参考 https://docs.docker.com/compose/compose-file/
部署Docker swarm
两台安装docker的Ubuntu主机。找一台当manager节点。
运行命令 docker swarm init --advertise-addr 192.168.0.100
运行成功后,会出现 join 的命令,复制下来粘贴到worker节点运行即可。
// 查看token的方法
docker swarm join-token manager:查看加入manager的命令
docker swarm join-token worker:查看加入woker的命令。
docker swarm join-token --rotate worker:重置woker的Token。
运行成功后在manager节点运行命令
docker node ls 查看集群节点。
docker service ls 查看运行的服务
部署服务
创建 nginx.yml 文件
version: '3.7'
services:
nginx:
image: nginx:latest
restart: always
ports:
- 8080:80
deploy:
mode: replicated
replicas: 1
docker stack deploy -c nginx.yml nginx-stack
参考网站:https://yeasy.gitbooks.io/docker_practice/content/swarm/