Docker(十二)—Swarm集群共享数据

 

环境

保证三台主机已经在一个swarm集群,还有一台nfs服务器取数据。

Swarm集群使用Volume

manager创建一个新的volume

docker volume create yutao
#创建数据卷yutao

编辑数据卷内容

vim /var/lib/docker/volumes/yutao/_data/index.html
>yutao

查看volume

 docker volume ls
 docker volume inspect yutao

在这里插入图片描述

启动nginx服务挂载数据卷

docker service create -d --replicas 3 --mount type=volume,src=yutao,dst=/usr/share/nginx/html --name  wyt-nginx-swarm -p 8010:80 nginx

查看服务

 docker service ls

在这里插入图片描述

浏览器访问

在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 实际上,改了一台manager的web内容,访问manager是随机性页面,除非三台主机都修改web页面。所以内部可能有负载均衡机制。

Swarm集群使用NFS

在这里插入图片描述

容器使用NFS

nfs服务器(192.168.2.58)

yum install nfs-utils -y
service nfs-server start
mkdir /web
vim /web/index.html
>wang
exportfs -rv
chmod a+w /web

容器manager主机

docker service create --name nfs-service     --mount 'type=volume,source=nfsvolume,target=/usr/share/nginx/html,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:/web,"volume-opt=o=addr=192.168.2.58,rw,nfsvers=4,async"' -dp 8010:80 --replicas 3 nginx:latest

可以看到使用nfs服务器页面一致

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

退群

worker主机

docker swarm leave 
#退出swarm集群

manager主机

docker node ls

在这里插入图片描述

删除down掉的主机

docker node rm azure

在这里插入图片描述

滚动升级

docker service update --image nginx:latest nginx
#升级nginx服务的镜像到最新状态