如果Docker Swarm集群中运行了mysql、nginx等服务,这些服务的数据如果没有挂载到宿主机中,那么容器一旦停止运行,那就意味着数据丢失。
有什么方法可以解决swarm集群中运行的服务能够数据持久化呢?我们可以通过volme、nfs等方法来实现swarm集群应用数据持久化,其实也和docker数据持久化的形式是一样的。
可以用两种方式来实现:
-
volume 默认模式:工作节点宿主机数据同步到容器内。
-
volume NFS 共享存储模式:管理节点宿主同步到工作节点宿主,工作节点宿主同步到容器。
一、通过volume实现数据持久化
注意:这种方式各个节点的数据不能共享。
卷是绕过联合文件系统的一个或多个容器内的特定目录。 卷被设计为保持数据,与容器的生命周期无关。 因此,Docker在删除容器时不会自动删除卷,也不会“垃圾收集”不再由容器引用的卷。 也称为:数据卷。
使用的语法格式如下:
使用案例:
- 在Swarm上部署服务,同时指定相应的数据卷
docker service create -p 7788:80 --replicas 3 --name myswarmtest \ --mount type=volume,src=myvolumn,dst=/usr/share/nginx/html/ collenzhao/mynginx:v1
- 查看数据卷
-
查看数据卷挂载的目录
docker volume inspect myvolumn
二、通过NFS实现数据持久化
NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
为了方便我们进行测试,单独准备一台机器作为NFS的服务器:node3。接下来,我们就需要安装NFS了。
1、所有节点安装NFS
2、NFS服务器端的部署
- 开启NFS服务
systemctl enable nfs systemctl start nfs
- 创建NFS目录
mkdir /nfs
- 编辑NFS配置文件
vi /etc/exports 输入以下内容: /nfs *(rw,sync,no_root_squash) 参数说明: /nfs : 共享的目录 * : 可以访问的主机网段,星号表示所有网段。 rw : 可读写权限,只读权限ro sync : 同步,数据更安全,速度慢 async : 异步,速度快,效率高,安全性低 no_root_squash :NFS 服务共享的目录的属性, 如果用户是root, 对这个目录就有root的权限
- 重启NFS
systemctl restart nfs
3、NFS客户端的部署
- 启动NFS客户端
systemctl start rpcbind
- 测试挂载nfs共享目录
mount -t nfs 192.168.15.140:/nfs /mynfs 其中:192.168.15.140为node3(NFS服务器的地址)
- 在文件/mynfs/a.txt 输入一些内容,在nfs服务器端查看是否能够看到刚才输入的内容。也可以通过下面的语句卸载NFS目录。
umount /mynfs/
4、基于NFS共享目录,创建Swarm集群服务
docker service create \ --replicas 3 \ --name my-nginx \ -p 7788:80 \ --mount 'type=volume,src=my-nfs-vol,dst=/usr/share/nginx/html,volume-driver=local,volume-nocopy=true,volume-opt=type=nfs,volume-opt=device=192.168.15.140:/nfs,"volume-opt=o=addr=192.168.15.140,vers=4,soft,timeo=180,bg,tcp,rw"' \ collenzhao/mynginx:v1
参数说明:
5、验证实验环境
-
在Manager节点上,查看服务和数据卷目录
docker service ls
docker volume ls
- 查看node1数据卷目录
- 查看node2数据卷目录
- 在任意一个节点上,进入数据卷共享目录修改a.html
相关推荐
赵强老师在传智播客的Oracle课程是专为IT专业人士和对数据库技术感兴趣的学员设计的一系列教学资料,旨在深入浅出地讲解Oracle的核心概念、功能以及实际操作技巧。 在赵强老师的课程中,你可以学到以下几个重要的...
想要好好地学习Oracle数据库的朋友呀,你错过了她就太不值得了。里面有好多的Oracle操作命令可能你都没接触过吧。好了,话不多多说。坚信资料不错!你,值得拥有!OK.还有,之所有要你2分打赏,是我给了你这么好的...
本资料包“day2013-0110-webLogic配置和集群(赵强).zip”包含了关于WebLogic的配置与集群搭建的详细教程,旨在帮助用户深入了解WebLogic的核心功能和管理技巧。 一、WebLogic基础配置 1. 安装与启动:首先,我们...
《精通JSP编程》是赵强先生的一部深入解析JSP技术的专业著作,该书针对JSP编程进行了全面且深入的讲解,旨在帮助读者掌握JSP的核心概念和技术,提升Web应用开发能力。根据提供的文件名列表,我们可以推测书籍的章节...
精通JSP编程 作者赵强 编 12-18节
根据提供的文件信息,我们可以推断出这是一份与Java Server Pages (JSP)相关的学习资料介绍,特别是关于赵强编写的《精通JSP编程》这本书的相关信息。下面将基于这个理解来生成相关知识点。 ### 一、JSP基础概念 ...
这样可以减少不必要的数据传输,提高查询速度。 2. **AND和OR操作符的使用策略**:在条件组合中,应将更可能为假的条件放在`AND`操作符的右侧,将更可能为真的条件放在`OR`操作符的右侧。这是因为SQL通常从右向左...
信息存储技术,作为信息技术的基石之一,从早期的岩画、古书,到现代的半导体、磁盘、光存储,再到先进的集群存储和虚拟化技术,其发展历程见证了人类社会的巨大变革。自20世纪开始,随着“万物皆可数”的理念推动,...
NoSQL指的是“不仅仅是SQL”,它是对于传统关系型数据库的一种补充,尤其适用于处理大量非结构化或半结构化数据的情况。NoSQL数据库与传统的关系型数据库相比,其主要优点包括高并发读写能力、海量数据存储、高可...
教程名称:Oracle 数据库赵强视频教程【3天】教程目录:【】Oracle安装与管理、SQL语句(赵强)【】Orcale存储过程jdbc与Orcale大文本操作等(赵强)【】SQL简单查询触发器视图(赵强) 资源太大,传百度网盘了,链接在...
- **数据装载工具**:用于将原始数据转换成数据仓库中的格式。 - **数据库**:存储原始数据。 - **数据查询工具**:用于查询数据仓库中的数据。 - **决策支持数据**:提供决策支持所需的分析结果。 - **数据分析工具...
Oracle使用SQL(结构化查询语言)作为其主要的数据操作语言,用户可以通过SQL进行数据查询、插入、更新和删除等操作。 课件中可能会涵盖Oracle的体系结构,这包括了服务器进程、后台进程、内存结构和磁盘结构。...
报告通过定性和定量研究方法,包括一对一深访和问卷调查,收集了大量数据,旨在理解用户需求并优化用户体验。 首先,报告指出在主要的电商平台中,微信购物和京东APP的用户主要动机是寻找推荐商品和优惠信息,而无...
4. 云计算与虚拟化:陈涛讲师的KVM虚拟化进阶与提高视频课程和王春海讲师的使用VSAN6.5组建双活数据中心视频课程都涉及到云计算领域的相关技术。OpenStack赵班长的课程则讲解了如何构建企业私有云。 5. 深度学习:...
【标题】"java代码-46 赖赵强" 暗示这是一份与Java编程相关的代码示例,可能由一位名为赖赵强的开发者编写或分享。这个标题可能指的是第46个编程练习、问题解决方案或者是某个功能模块的实现。在Java开发中,代码...
如何构建后现代前端工程化开发体系.pdf 接口联调 • 需求:定义数据结构 +假数据测试 + 记录接口文档 • 推荐:postman • 线上服务:easy-mock.com • 本地服务:steamer-plugin-mock 数据上报与错误监控 • 难点:...
《LoadRunner性能测试巧匠训练营》是一本深入讲解LoadRunner性能测试的教材,由赵强和邹伟伟两位专家共同编著。该资源提供的是完整版,且无需密码即可解压阅读,对于想要学习和提升LoadRunner性能测试技能的人来说,...