docker swarm 介绍
Docker Swarm是Docker的一个原生的容器集群管理工具,它可以将多个Docker主机组成一个集群,从而实现Docker容器的高可用性和负载均衡。Docker Swarm使用了Docker原生的API和命令行工具,因此可以直接与Docker Engine进行交互,使得容器的部署和管理更加方便和高效。
Docker Swarm的主要特点包括:
-
自动化扩展:Docker Swarm可以根据应用负载的变化自动调整容器的数量,以保证应用的稳定性和高可用性。
-
负载均衡:Docker Swarm可以自动将请求分发到容器集群中最适合的节点上,从而实现负载均衡和优化应用性能。
-
安全性:Docker Swarm支持TLS加密的通信,能够保障容器节点之间的通信安全。
-
多主机管理:Docker Swarm可以管理多个Docker主机,从而让容器的部署和管理更加高效和灵活 。
创建 docker swarm 集群
地址规划
node1:192.168.9.211 (管理)
node2:192.168.9.212
node3:192.168.9.213
在创建swarm 集群前先下载swarm可视化管理工具
docker pull dockersamples/visualizer
docker run -it -d -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock --restart always --name visua dockersamples/visualizer
1。 在node1上输入命令
docker swarm init --advertise-addr 192.168.9.211:2377
2. 在node2 和node3 上输入
docker swarm join --token SWMTKN-1-27idy1a563gnx9kl3un7db5i8kij5wa6gfhhpif7uux6069lfz-7q0tnlvuww7ig5elvrjyzw33s 192.168.9.211:2377
swarm 集群搭建完毕
swarm 的模式
一种是 replicated (默认)
一种是 global
docker service create --mode global --constraint node.labels.cs==ab --name cs-and-ab nginx
命令
创建标签
docker node update --label-add ax==1 node1 (可以有多个标签)
查看标签和信息
docker node inspect node1 --pretty
设置节点模式
create 创建 可以用--mode 创建两种模式
scale 给创建的增加或者减少
ls 查看信息
ps 查看运行的
logs 查看日志
rollback 回滚
update 更新
inspect 查看详细信息
rm 删除
demote 降职
promote 升职
更新
docker service update --image 版本 my_web (名字)
网络
docker service 之间相互通信必须在同意个网络
1 创建overlay 网络
docker network create --driver overlay myapp_net
部署service 到overlay
docker service create --name my_web --replicas=3 --network myapp_net nginx
部署一个util用于测试
docker service create --name util --network myapp_net busybox sleep 10000
登录容器util 中
docker exec util ping -c 3 my_web
可以看到能互相通信了