`

【赵强老师】Docker Swarm集群的数据持久化

阅读更多

如果Docker Swarm集群中运行了mysql、nginx等服务,这些服务的数据如果没有挂载到宿主机中,那么容器一旦停止运行,那就意味着数据丢失。

有什么方法可以解决swarm集群中运行的服务能够数据持久化呢?我们可以通过volme、nfs等方法来实现swarm集群应用数据持久化,其实也和docker数据持久化的形式是一样的。

可以用两种方式来实现:

  1. volume 默认模式:工作节点宿主机数据同步到容器内。

  2. 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 ls 

  • 查看数据卷挂载的目录

docker volume  inspect myvolumn 

二、通过NFS实现数据持久化

NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

为了方便我们进行测试,单独准备一台机器作为NFS的服务器:node3。接下来,我们就需要安装NFS了。

1、所有节点安装NFS

yum -y install nfs-utils   

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数据卷目录
docker volume ls

  • 查看node2数据卷目录
docker volume ls 

  •  在任意一个节点上,进入数据卷共享目录修改a.html

分享到:
评论

相关推荐

    传智播客 赵强 Oracle课件

    赵强老师在传智播客的Oracle课程是专为IT专业人士和对数据库技术感兴趣的学员设计的一系列教学资料,旨在深入浅出地讲解Oracle的核心概念、功能以及实际操作技巧。 在赵强老师的课程中,你可以学到以下几个重要的...

    赵强老师的Oracle课件

    想要好好地学习Oracle数据库的朋友呀,你错过了她就太不值得了。里面有好多的Oracle操作命令可能你都没接触过吧。好了,话不多多说。坚信资料不错!你,值得拥有!OK.还有,之所有要你2分打赏,是我给了你这么好的...

    day2013-0110-webLogic配置和集群(赵强).zip

    本资料包“day2013-0110-webLogic配置和集群(赵强).zip”包含了关于WebLogic的配置与集群搭建的详细教程,旨在帮助用户深入了解WebLogic的核心功能和管理技巧。 一、WebLogic基础配置 1. 安装与启动:首先,我们...

    精通JSP编程 作者赵强

    《精通JSP编程》是赵强先生的一部深入解析JSP技术的专业著作,该书针对JSP编程进行了全面且深入的讲解,旨在帮助读者掌握JSP的核心概念和技术,提升Web应用开发能力。根据提供的文件名列表,我们可以推测书籍的章节...

    精通JSP编程 作者赵强 编

    精通JSP编程 作者赵强 编 12-18节

    [1120][赵强精通JSP编程][37M]

    根据提供的文件信息,我们可以推断出这是一份与Java Server Pages (JSP)相关的学习资料介绍,特别是关于赵强编写的《精通JSP编程》这本书的相关信息。下面将基于这个理解来生成相关知识点。 ### 一、JSP基础概念 ...

    Oracle学习笔记(传智播客 赵强)

    这样可以减少不必要的数据传输,提高查询速度。 2. **AND和OR操作符的使用策略**:在条件组合中,应将更可能为假的条件放在`AND`操作符的右侧,将更可能为真的条件放在`OR`操作符的右侧。这是因为SQL通常从右向左...

    信息存储技术的发展赵强.doc

    信息存储技术,作为信息技术的基石之一,从早期的岩画、古书,到现代的半导体、磁盘、光存储,再到先进的集群存储和虚拟化技术,其发展历程见证了人类社会的巨大变革。自20世纪开始,随着“万物皆可数”的理念推动,...

    10天掌握MongoDB

    NoSQL指的是“不仅仅是SQL”,它是对于传统关系型数据库的一种补充,尤其适用于处理大量非结构化或半结构化数据的情况。NoSQL数据库与传统的关系型数据库相比,其主要优点包括高并发读写能力、海量数据存储、高可...

    Oracle数据库赵强视频教程【3天】

    教程名称:Oracle 数据库赵强视频教程【3天】教程目录:【】Oracle安装与管理、SQL语句(赵强)【】Orcale存储过程jdbc与Orcale大文本操作等(赵强)【】SQL简单查询触发器视图(赵强)  资源太大,传百度网盘了,链接在...

    从零开始oracle

    - **数据装载工具**:用于将原始数据转换成数据仓库中的格式。 - **数据库**:存储原始数据。 - **数据查询工具**:用于查询数据仓库中的数据。 - **决策支持数据**:提供决策支持所需的分析结果。 - **数据分析工具...

    oracle内部培训教材(来自传智播客学员)

    Oracle数据库是一个关系型数据库管理系统(RDBMS),它以表格的形式存储数据,并通过SQL(结构化查询语言)进行数据的增删改查操作。Oracle支持多用户并发访问,具有高度的数据完整性和安全性,适合大型企业的复杂...

    oracle课件

    Oracle使用SQL(结构化查询语言)作为其主要的数据操作语言,用户可以通过SQL进行数据查询、插入、更新和删除等操作。 课件中可能会涵盖Oracle的体系结构,这包括了服务器进程、后台进程、内存结构和磁盘结构。...

    赵强_微信购物首页改版用户调研1

    报告通过定性和定量研究方法,包括一对一深访和问卷调查,收集了大量数据,旨在理解用户需求并优化用户体验。 首先,报告指出在主要的电商平台中,微信购物和京东APP的用户主要动机是寻找推荐商品和优惠信息,而无...

    IT人必知必会的100个课程-终极大揭秘

    4. 云计算与虚拟化:陈涛讲师的KVM虚拟化进阶与提高视频课程和王春海讲师的使用VSAN6.5组建双活数据中心视频课程都涉及到云计算领域的相关技术。OpenStack赵班长的课程则讲解了如何构建企业私有云。 5. 深度学习:...

    java代码-46 赖赵强

    【标题】"java代码-46 赖赵强" 暗示这是一份与Java编程相关的代码示例,可能由一位名为赖赵强的开发者编写或分享。这个标题可能指的是第46个编程练习、问题解决方案或者是某个功能模块的实现。在Java开发中,代码...

    如何构建后现代前端工程化开发体系.pdf

    如何构建后现代前端工程化开发体系.pdf 接口联调 • 需求:定义数据结构 +假数据测试 + 记录接口文档 • 推荐:postman • 线上服务:easy-mock.com • 本地服务:steamer-plugin-mock 数据上报与错误监控 • 难点:...

    LoadRunner性能测试巧匠训练营-完整版(带目录)-赵强邹伟伟

    《LoadRunner性能测试巧匠训练营》是一本深入讲解LoadRunner性能测试的教材,由赵强和邹伟伟两位专家共同编著。该资源提供的是完整版,且无需密码即可解压阅读,对于想要学习和提升LoadRunner性能测试技能的人来说,...

Global site tag (gtag.js) - Google Analytics