创建dockerSwarm nfs挂载

2023-12-10 09:13
文章标签 创建 nfs 挂载 dockerswarm

本文主要是介绍创建dockerSwarm nfs挂载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

创建dockerSwarm nfs挂载

nfs高可用部署(lsyncd两主机双向同步)
nfs高可用部署(lsyncd三主机三向同步)

1. 通过 Volume

1.1 创建 Docker Volume

每个 swarm 节点均创建相同名称的 Docker Volume(名称为 nfs120)

docker volume create --driver local \--opt type=nfs \--opt o=addr=192.168.56.120,rw \--opt device=:/home/nfs \nfs120

1.2 查看 Volume 是否创建成功

docker volume ls
# swarm集群节点依次进行验证

在这里插入图片描述

1.3 查看 Volume 详情

docker volume inspect nfs120

在这里插入图片描述

其中:Mountpoint 为 Host 挂载点,Options 为 NFS 服务共享目录信息。

1.4 验证数据共享特性

在 docker swarm 的 master 节点执行创建服务操作

docker service rm web
docker service create \--name web \--publish 8080:80 \--mount type=volume,source=nfs120,destination=/data1 \--mode global \nginx:1.22

1.5 查看 Service 部署情况

在这里插入图片描述

1.6 验证数据共享特性 NFS 服务创建测试数据

在这里插入图片描述

1.7 Service 验证是否共享 NFS 数据

在这里插入图片描述

可见,数据被共享了,当然,你在容器中 /data1目录下产生的数据也会被持久化到 NFS 服务上。

当然,Nginx 也是正常运行的

在这里插入图片描述

2. 通过 Docker Stack

官方文档 Docker Stack CLI

通过 Volume 方式,你会发现每台 swarm 集群 work 节点都需要创建 Volume(如果 master 节点也为 work 节点,也要创建 Volume )。稍显麻烦,我们可通过 Docker Stack 方式来弥补这点不足,也就是使用 Docker Stack 方式时,就不需要手动创建 Docker Volume 了。

2.1 启动一个stack服务

官方文档:docker compose CLI

创建每个节点都启动一个容器的service

cat > docker-compose.yml  << EOF
version: "3"
services:web:image: nginx:1.22volumes:- nfs121:/dataports:- "8081:80"  deploy:    mode: global  
volumes:nfs121:driver: localdriver_opts:type: "nfs"o: "addr=192.168.56.120,rw"device: ":/home/nfs"
EOFdocker service rm web_web
# 启动一个web_web 的service
docker stack deploy -c docker-compose.yml web

2.2 查询服务及挂载volume是否存在

docker service ls
docker service ps web_web
docker volume ls
docker volume inspect web_nfs121

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3 验证数据共享特性

docker exec -it web_web.mv3jjl59io5wx0sywoghdatqs.6nom1h5z2w0r9cyykb2gse8wy /bin/bash

在这里插入图片描述

以上步骤成功!

FQA:

1.create service 创建其他节点也存在volume

docker service create --mode global \--name web122 \--publish 8082:80 \--mount 'type=volume,source=nfs122,target=/home/nfs,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:/home/nfs,volume-opt=o=addr=192.168.56.120' \nginx:1.22

查看结果

在这里插入图片描述

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

这篇关于创建dockerSwarm nfs挂载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/476682

相关文章

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

MySQL的触发器全解析(创建、查看触发器)

《MySQL的触发器全解析(创建、查看触发器)》MySQL触发器是与表关联的存储程序,当INSERT/UPDATE/DELETE事件发生时自动执行,用于维护数据一致性、日志记录和校验,优点包括自动执行... 目录触发器的概念:创建触www.chinasem.cn发器:查看触发器:查看当前数据库的所有触发器的定

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项