docker学习笔记(三)搭建NFS服务实验
目录
什么是NFS
简单架构编辑
一.搭建nfs服务器
二.新建共享目录和网页文件
三.设置共享目录
四:创建使用nfs共享目录的卷
五:创建容器使用nfs-web-1卷
六:测试访问
七:是否同步测试
什么是NFS
NFS 服务器:network file system 网络文件系统 NFS 是一种用于在网络上共享文件系统的协议,允许多台计算机之间共享文件。通过创建这样一个 NFS 卷,可以在 Docker 容器之间共享持久化数据,以及与其他计算机上的文件系统进行数据交换。
简单架构
准备好2台机器
一台做nfs使用,一台是docker宿主机
在nfs上创建一个共享目录给宿主机使用,并且修改/etc/export配置文件共享出去,再在docker上创建一个卷,使用nfs协议挂在到docker宿主机上。卷相当于是桥梁,将宿主机和nfs服务器连接起来
一.搭建nfs服务器
1.更改主机名
[root@web-server ~]# hostnamectl set-hostname nfs
[root@web-server ~]# su
2.关闭防火墙
[root@nfs ~]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@nfs ~]# systemctl disable firewalld
[root@nfs ~]# getenforce
Disabled ##此时显示防火墙是禁用的了
3.安装
注意:建议docker集群内的所有的节点都安装nfs-utils软件,因为节点服务器里创建卷需要支持nfs网络文件系
[root@docker _data]# yum install nfs-utils -y
[root@docker _data]# yum install nfs-utils -y
4.开启nfs以及开机启动
[root@nfs ~]# service nfs start 启动nfs服务
Redirecting to /bin/systemctl start nfs.service
[root@nfs ~]# systemctl enable nfs 设置nfs服务开机启动
二.新建共享目录和网页文件
/web_data共享目录和index.html网页文件
[root@nfs ~]# mkdir /web_data
[root@nfs ~]# cd /web_data
[root@nfs web_data]# ls
feng.jpg index.html ##/web_data的文件来自192.168.203.128的宿主
[root@docker web_data]# cd _data/
[root@docker _data]# ls
feng.jpg index.html
[root@docker _data]# scp -r * 192.168.203.146:/web_data
这里之前已经写好了一个简单网页文件index.html并放置了图片 ,scp直接远程拿取文件过来,再输入密码就可以拷贝过来
三.设置共享目录
1.编辑配置文件
vim /etc/exports 这是nfs的共享配置文件
/web_data 192.168.203.0/24(rw,all_squash,sync) 将这条命令写到配置文件中
rw 是读写权限 read write
ro 是只读权限 readonly
sync:同步:容器写数据到卷里面,卷再把数据传给nfs同时完成 --》优点:不丢失数据
async:异步 : 可以错开时间,分开进行,有时间差 --》异步效率高(可以错开时间,不耽误时间),有可能会丢失数据
no_root_squash 其他机器的root用户连接过来nfs服务的时候,把它当做root用户对待
root_squash 其他机器的root用户连接过来nfs服务的时候,不把它当做root用户对待,把它当做普通的用户对待(nfsnobody)
all_squash 其他机器的所有的用户(任意用户)连接过来nfs服务的时候,把它当做普通的用户对待(nfsnobody)
2.给予权限
因为考虑到给其他的机器读写的权限,需要在linux系统里也要给与读写的权限
因为/web_data是属于root用户所有,但是nfs服务是以nfsnobody的用户身份去访问/web_data目录的,不然就没有写的权限,只有读的权限
[root@nfs web_data]# ll -d /web_data/
drwxr-xr-x 2 root root 40 1月 11 15:09 /web_data/
[root@nfs web_data]# chmod 777 /web_data/
[root@nfs web_data]# ll -d /web_data/
drwxrwxrwx 2 root root 40 1月 11 15:09 /web_data/
刷新nfs或者重新输出共享目录
[root@nfs web_data]# service nfs restart 刷新nfs服务也会重新输出共享目录
Redirecting to /bin/systemctl restart nfs.service
四:创建使用nfs共享目录的卷
在docker宿主机上操作创建卷,这个卷
[root@docker test-nfs]# docker volume create --driver local --opt type=nfs --opt o=addr=192.168.203.146,nolock,soft,rw,sync --opt device=:/web_data nfs-web-1
在 Docker 中创建一个名为 nfs-web-1 的卷,并将其配置为使用 NFS作为驱动程序。
同时NFS这个驱动程序的配置选项如下:

五:使用nfs-web-1卷
[root@docker test-nfs]# docker run -d --name wangyong-nginx-1 -p 7001:80 -v nfs-web-1:/usr/share/nginx/html nginx
这条命令的作用是创建并运行一个名为 "wangyong-nginx-1" 的容器,该容器基于 Nginx 镜像,在主机的 7001 端口上提供 Web 服务,并通过卷 "nfs-web-1" 将主机上的目录挂载到容器中。
[root@docker test-nfs]# docker run -d --name wangyong-nginx-2 -p 7002:80 -v nfs-web-1:/usr/share/nginx/html nginx
[root@docker test-nfs]# docker run -d --name wangyong-nginx-3 -p 7003:80 -v nfs-web-1:/usr/share/nginx/html nginx
六:测试访问
在windows的主机上访问docker宿主机的7001 7002 7003端口



七:是否同步测试
[root@nfs web_data]# pwd
/web_data
[root@nfs web_data]# ls
feng.jpg index.html niweinan
[root@nfs web_data]# vim index.html
<html>
<title>welcome to sanchuang</title>
<body><p> welcome to hunan changsha sanchuang</p><h1><p> PhoneNO:18908495097</p></h1><h1><p> QQ:695811769</p></h1><img src=feng.jpg width=400>
</body>
</html>
这就是写的html文件,图片是安装软件之后直接在windows桌面拖拽到当前目录过来的
修改一下文件,加入QQ的信息再用第三个容器去访问可以看到有同步的更改,测试结果如图

相关文章:
docker学习笔记(三)搭建NFS服务实验
目录 什么是NFS 简单架构编辑 一.搭建nfs服务器 二.新建共享目录和网页文件 三.设置共享目录 四:创建使用nfs共享目录的卷 五:创建容器使用nfs-web-1卷 六:测试访问 七:是否同步测试 什么是NFS NFS 服务器:ne…...
super关键字
super关键字 在Java中,super是一个关键字,它用于引用当前对象的父类。在继承的关系中,子类可以通过super关键字来调用父类的构造方法、成员方法和成员变量。 super关键字的主要用途 调用父类的构造方法: 在子类的构造方法中&…...
【经典算法】LeetCode 200. 岛屿数量(Java/C/Python3/Go实现含注释说明,中等)
目录 题目描述思路及实现方式一:深度优先搜索(DFS)思路代码实现Java版本C语言版本Python3版本Golang版本 复杂度分析 方式二: 使用广度优先搜索(BFS)思路代码实现Java实现C实现Python3实现Go实现 总结相似题…...
Hive SQL-DQL-Select查询语句用法详解
HQL Select用法详解 1.基础语法 (1)select_exp (2)ALL、DISTINCT (3)WHERE (4)分区查询、分区裁剪 (5)GROUP BY (6)HAVING ࿰…...
沙盘Sandboxie v5.56.4
菜鸟高手裸奔工具沙盘Sandboxie是一款国外著名的系统安全工具,它可以让选定程序在安全的隔离环境下运行, 只要在此环境中运行的软件,浏览器或注册表信息等都可以完整的进行清空,不留一点痕迹。同时可以防御些 带有木马或者病毒的…...
Arcpy开发记录
一.GDB数据库相关 1.单独的shape更新时,不会有限制,数据会自动截取 2.在GDB下,使用UpdateCursor更新字段时,填入的数据长度必须与字段长度要求一致,否则报错: 二.Cursor相关 嵌套使用cursor时,…...
Android使用itextpdf操作PDF文档
1、导入jar包: itext-asian.jaritextpdf-5.5.8.jar Paragraph 和 Phrase 的区别: 在 iTextPDF 库中,Paragraph 和 Phrase 是用于创建和组织文本内容的两个不同的类。 Paragraph(段落): Paragraph 是一个…...
llama_index微调BGE模型
微调模型是为了让模型在特殊领域表现良好,帮助其学习到专业术语等。 本文采用llama_index框架微调BGE模型,跑通整个流程,并学习模型微调的方法。 已开源:https://github.com/stay-leave/enhance_llm 一、环境准备 Linux环境,GPU L20 48G,Python3.8.10。 pip该库即可。…...
什么是限流?常见的限流算法
目录 1. 什么是限流 2. 常见限流算法 3. 固定窗口算法 4. 滑动窗口算法 5. 漏桶算法 6. 令牌桶算法 7. 限流算法选择 1. 什么是限流 限流(Rate Limiting)是一种应用程序或系统资源管理的策略,用于控制对某个服务、接口或功能的访问速…...
ZL-0895小动物活动记录仪可同时检测8只动物的活动量
简单介绍: 小动物活动记录仪是一种多用途、宽范围的小动物活动记录仪器,可用于小鼠、大鼠、豚鼠和兔的实验,小动物活动记录仪具有不需对动物使用特别盛具的特点,可在不改变动物原生活环境的情况下,进行实时监测&…...
注册测绘师的前世今生
本文梳理了 注册测绘师 的前世今生,具体情况如下表: 历史线时间事件诞生2007年1月原人事部、国家测绘局联合印发《注册测绘师制度暂行规定》,注册测绘师制度建立。同时同步发布《注册测绘师资格考试实施办法》、《注册测绘师资格考核认定办法…...
Python中的异常处理:深入探索try-except-finally结构
Python中的异常处理:深入探索try-except-finally结构 一、引言 在Python编程中,异常处理是一个非常重要的部分。当程序遇到错误时,比如尝试除以零、文件读取失败等,Python会抛出一个异常。如果我们不捕获这些异常,程…...
【R语言】边缘概率密度图
边缘概率密度图是一种在多变量数据分析中常用的图形工具,用于显示每个单独变量的概率密度估计。它通常用于散点图的边缘,以便更好地理解单个变量的分布情况,同时保留了散点图的相关性信息。 在边缘概率密度图中,每个变量的概率密度…...
中国结(科普)
中国结是一种手工编织工艺品,它身上所显示的情致与智慧正是汉族古老文明中的一个侧面。 [1]它原本是由旧石器时代的缝衣打结,后推展至汉朝的仪礼记事,再演变成今日的装饰手艺。周朝人随身的佩戴玉常以中国结为装饰,而战国时代的铜…...
使用Android Studio 搭建AOSP FrameWork 源码阅读开发环境
文章目录 概述安装Android Studio编译源码使用Android Studio打开源码制作ipr文件直接编译成功后自动打开Android Studio 修改SystemUI验证开发环境 概述 我们都知道Android的系统源码量非常之大,大致有frameworka层源码,硬件层(HAL)源码,内…...
区块链 | IPFS:CID
🦊原文:Anatomy of a CID 🦊写在前面:本文属于搬运博客,自己留存学习。 1 CID 在分布式网络中与其他节点交换数据时,我们依赖于内容寻址(而不是中心化网络的位置寻址)来安全地定位…...
PostgreSQL(十二)报错:Tried to send an out-of-range integer as a 2-byte value: 51000
目录 一、报错场景二、源码分析三、实际原因(更加复杂)四、解决思路 一、报错场景 今天写了一个历史数据处理程序,在开发环境、测试环境都可以正常执行,但是放到生产环境上就不行,报了一个这样的错误: or…...
Linux守护进程
进程组和会话在 UNIX 系统中是非常重要的概念,特别是在进行作业控制和终端会话管理时。下面是关于进程组和会话的详细解释: 进程组(Process Group) 定义与作用: 进程组是一个或多个进程的集合,这些进程通常…...
HarmonyOS 应用开发——入门
首先当然是华为的官方文档了,要认真学习: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/start-overview-0000001478061421-V2 不想花时间看,可以看我下面总结的干货,哈哈 第一个问题:stage架构和fa架构的区…...
开源免费的发票识别OCR应用:Invoice
Invoice:轻松识别,发票电子化扫描烦恼消- 精选真开源,释放新价值。 概览 Invoice 是github社区上一个采用开源许可协议发布的增值税发票光学字符识别(OCR)解决方案项目。该项目不仅集成了预训练的高级模型,…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
