DevOps系列文章之 Docker 安装 NFS 服务器

Docker 安装 NFS 服务器

环境:

192.186.2.105 NFS 服务器

192.168.2.106 Client 客户端

安装

一、服务器端

https://github.com/f-u-z-z-l-e/docker-nfs-server

1、创建目录

mkdir /nfsdata
mkdir -p /docker/nfs/

2、启动脚本

vim start.sh# 内容
docker run -d --privileged --restart=always \
-v /nfsdata:/nfs \
-e NFS_EXPORT_DIR_1=/nfs \
-e NFS_EXPORT_DOMAIN_1=\* \
-e NFS_EXPORT_OPTIONS_1=rw,insecure,no_subtree_check,no_root_squash,fsid=1 \
-p 111:111 -p 111:111/udp \
-p 2049:2049 -p 2049:2049/udp \
-p 32765:32765 -p 32765:32765/udp \
-p 32766:32766 -p 32766:32766/udp \
-p 32767:32767 -p 32767:32767/udp \
fuzzle/docker-nfs-server:latest

二、安装 客户端

1、安装

yum -y install nfs-utils

2、查看

showmount -e 192.168.59.139

成功显示Export list for 192.168.59.139:
/nfs *

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QhT7MuIo-1690905066691)(C:\Users\Gary\AppData\Roaming\Typora\typora-user-images\image-20230801225238971.png)]

如图所示可以看到NFS服务器内的共享文件夹为nfs(因为我们的nfs服务端部署为docker部署,此/nfs的路径为docker容器内部,我们已经映射出来为/nfsdata):

3、挂载

mkdir -p /mnt/nfsdatamount -t nfs 192.168.59.139:/nfs /mnt/nfsdata

4、创建一个文件

echo "hello,world" > hello.html

三、查看 NFS 服务器

1、成功显示 hello.html 文件

ll /nfsdata总用量 4
-rw-r--r-- 1 root root 12 3月  19 07:31 hello.html

Docker挂载使用

version: '3'
services:xbd-mysql:image: mysql:8.0.19restart: alwayscontainer_name: xbd-mysqlvolumes:- nfs:/var/lib/mysqlports:- 3306:3306environment:MYSQL_ROOT_PASSWORD: rootprivileged: truecommand: ['--lower_case_table_names=1', '--character-set-server=utf8', '--collation-server=utf8_general_ci']volumes:nfs:driver_opts:type: "nfs"o: "addr=192.168.59.139,nolock,soft,rw"device: ":/nfs/mysql"

也可以通过docker的方式创建volume

docker volume create nfs_name -d local -o type=nfs -o o=addr=192.168.59.139,nolock,soft,rw -o device=:/nfs/mysql

这样就可以在服务端也创建容器进行挂载,这样就能实现跨主机容器与容器之间的文件共享。

需求:任意修改客户端容器内共享目录的内容,在服务器的的宿主机或者容器内也能看到实时的修改
技术:NFS、Dockers
原理:先利用NFS创建服务端与客户端之间的共享空间,再利用docker技术将客户端容器的某个目录挂载到共享目录,就能实现需求。同理,采用上述方法也能实现跨主机的容器之间文件的共享。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AJNjairg-1690905066693)(C:\Users\Gary\AppData\Roaming\Typora\typora-user-images\image-20230801231015341.png)]

服务端NFS配置

vim /etc/exports
/mnt/nfs_file/ 192.168.57.0/24(rw,sync,no_root_squash)//ro只读权限
//rw读写权限
//sync同步写入内存与磁盘当中
//no_all_squash保留共享文件的UID和GID(默认)
//no_root_squash使得root用户具有根目录的完全访问权限
.0/24(rw,sync,no_root_squash)//ro只读权限
//rw读写权限
//sync同步写入内存与磁盘当中
//no_all_squash保留共享文件的UID和GID(默认)
//no_root_squash使得root用户具有根目录的完全访问权限

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/54452.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android平台GB28181设备接入端如何降低资源占用和性能消耗

背景 我们在做GB28181设备接入模块的时候,考虑到好多设备性能一般,我们一般的设计思路是,先注册设备到平台侧,平台侧发calalog过来,获取设备信息,然后,设备侧和国标平台侧维持心跳,…

百度秋招攻略,百度网申笔试面试详解

百度秋招简介 作为行业巨头,百度向社会提供的岗位一直都是非常吃香的,每年也都有很多考生密切关注,百度发布的招聘广告,以尽可能的让自己进入这家企业工作,实现自己的人生价值。那么百度每年的秋招时间是多久&#xf…

全面了解CPU Profiler:解读CPU性能分析工具的核心功能与用法

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、使用3.1 通过调用系统API3.2 通过Android Stu…

[国产MCU]-BL602开发实例-开发环境搭建

开发环境搭建 文章目录 开发环境搭建1、BL602介绍2、软件准备3、源码编译3.1 编译内置工程3.2 自定义工程、自定义组件添加与编译4、固件下载BL602 是一款Wi-Fi + BLE组合的芯片组,用于低功耗和高性能应用开发。无线子系统包含2.4G无线电,Wi-Fi 802.11b/g/n和BLE 5.0 基带/MA…

数组相关练习

数组练习 将数组转化成字符串数组拷贝求数组元素的平均值查找数组中指定元素(顺序查找)二分查找冒泡排序数组逆序 将数组转化成字符串 import java.util.Arrays;public class Text1 {public static void main(String[] args) {int[] arr {5, 6, 4, 2};System.out.println(Arr…

HarmonyOS 开发基础(五)对用户名做点啥

一、实现用户名检验 条件渲染 、生命周期 1.规定用户名长度 2.限定使用的数字及字母(涉及正则表达) // 导出方式直接从文件夹 import MyInput from "../common/commons/myInput" Entry Component /* 组件可以基于struct实现,组件…

Flask 是什么?Flask框架详解及实践指南

Flask 是一个轻量级的 Python Web 框架,它被广泛用于构建 Web 应用程序和 API。Flask 简单易用,具有灵活性和可扩展性,是许多开发者喜欢用其构建项目的原因。本文将介绍 Flask 是什么以及如何使用它来构建 Web 应用程序,同时提供一…

[ MySQL ] — 数据库环境安装、概念和基本使用

目录 安装MySQL 获取mysql官⽅yum源 安装mysql yum 源 安装mysql服务 启动服务 登录 方法1:获取临时root密码 方法2:无密码 方法3:跳过密码认证 配置my.cnf 卸载环境 设置开机启动(可以不设) 常见问题 安装遇到秘钥过期的问题&…

提前还款损失测算

在贷款产品损失测算中,有一项是关于提前还款损失的计算,本文主要介绍提前还款损失的预估方法。 假设一个6期的产品,本金为10000元,IRR利率为24%,等额本息还款,提前还款需要收取剩余本金1.5%作为手续费。 一…

Docker安装Grafana以及Grafana应用

Doker基础 安装 1、 卸载旧的版本 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 2、需要的安装包 sudo yum install -y yum-utils 3、设置镜像的仓库 yum-config-m…

备忘录模式——撤销功能的实现

1、简介 1.1、概述 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤。当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原。当前很多软件都提供了撤销(Undo)操作&#xf…

Linux知识点 -- 进程间通信(一)

Linux知识点 – 进程间通信(一) 文章目录 Linux知识点 -- 进程间通信(一)一、了解进程间通信1.进程间通信的必要性2.进程间通信的技术背景3.进程间通信的本质理解4.进程间通信的标准 二、匿名管道1.匿名管道通信的原理2.匿名管道的…