volume 默认模式:工作节点宿主机数据同步到容器内。 l
volume NFS 共享存储模式:管理节点宿主同步到工作节点宿主,工作节点宿主同步到容器。
volume 默认模式
直接创建命令,创建名为web-file
[root@master ~]# docker volume create web-file
#web-file的本地挂载点在/var/lib/docker/volumes/web-file/_data/
启动一个nginx的容器,将web-file映射nginx默认目录
[root@master ~]# docker run -it -d --name web -v web-file:/usr/share/nginx/html nginx 7050ae4941a6c57431d61a3f3c2ef722ae86daf1966de4f55caa26b78a6e9fa6
测试
进入本地挂载目录/var/lib/docker/volumes/web-file/_data/
此时容器内的目录已经同步在挂载点目录了,
重新写入测试内容到默认网页
网页访问
volume NFS 共享存储模式
master配置NFS共享目录
[root@master ~]# yum -y install nfs-utils [root@master ~]# mkdir /share [root@master ~]# chmod 777 /share/ [root@master ~]# vim /etc/exports /share 192.168.1.0/24(rw,sync) [root@master ~]# exportfs -rv exporting 192.168.1.0/24:/share [root@master ~]# systemctl restart rpcbind [root@master ~]# systemctl enable rpcbind [root@master ~]# systemctl restart nfs [root@master ~]# systemctl enable nfs
node节点安装nfs
[root@node ~]# yum -y install nfs-utils [root@node ~]# systemctl restart rpcbind [root@node ~]# systemctl enable rpcbind [root@node ~]# systemctl restart nfs [root@node ~]# systemctl enable nfs
创建volume,将本地目录/share挂载,名称为test-home
[root@master ~]# docker volume create --driver local --opt type=nfs –opt o=addr=192.168.1.10,rw --opt device=:/share test-home
在集群中创建nginx服务,端口映射到外部8888,挂载卷到nginx默认网页目录,创建3台副本。
[root@master ~]# docker service create --name test-nginx --publish 8888:80 --mount type=volume,source=test-home,destination=/usr/share/nginx/html --replicas 3 nginx qc82k52h4kvm8i4ewirtfq0xw overall progress: 3 out of 3 tasks 1/3: running [==================================================>] 2/3: running [==================================================>] 3/3: running [==================================================>] verify: Service converged
测试:
在外部/share目录中创建index.html网页
进入docker 服务器容器,查看文件,文件已经成功挂载
网页测试访问
portainer可视化操作
安装了Portainer,以上操作都可以在网页控制台执行
进入Volume管理
此处已经显示了之前操作的volume
点击create可创建
勾选NFS volume 也可以进行共享存储模式添加挂载