企业运维 | NFS、Samba服务在Docker容器环境中快速搭建部署实践

news2024/10/2 22:20:40

欢迎关注「全栈工程师修炼指南」公众号

设为星标⭐每天带你 基础入门 到 进阶实践 再到 放弃学习

专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享

  花开堪折直须折,莫待无花空折枝 


作者主页:[ https://www.weiyigeek.top ]  

博客:[ https://blog.weiyigeek.top ]

作者<安全开发运维>答疑交流群,回复【学习交流群】即可加入


文章目录:

  • Docker 快速部署 nfs-server 服务

  • Docker 快速部署 samba-server 服务


0x00 Docker 快速部署 nfs-server 服务

步骤 01.载入模块 nfs 依赖模块

tee -a /etc/modules-load.d/modules.conf <<'EOF'
modprobe nfs
modprobe nfsd
EOF

温馨提示: Linux modprobe命令用于自动处理可载入模块,modprobe可载入指定的个别模块,或是载入一组相依的模块。

步骤 02.创建NFS共享目录以及运行nfs-server容器,并且验证服务

$ mkdir -vp /app/storage/nfs
$ docker run --privileged -d --name nfs \
-v /app/storage/nfs:/nfsshare \
-e NFS_EXPORT_0='/nfsshare  *(rw,sync,no_root_squash,no_all_squash,no_subtree_check,nohide,crossmnt)' \
-p 2049:2049   -p 2049:2049/udp   \
-p 111:111     -p 111:111/udp      \
-p 32765:32765 -p 32765:32765/udp  \
-p 32767:32767 -p 32767:32767/udp  \
erichough/nfs-server

# 在Ubuntu宿主机上安装nfs客户端工具
$ sudo apt install nfs-client
$ showmount -e 10.20.176.101
Export list for 10.20.176.101:
/nfsshare *

步骤 03.手动挂载nfs到指定磁盘目录中。

mount -v -t nfs -o ro,nfsvers=3,nolock,proto=udp,port=2049 10.20.176.101:/nfsshare /mnt/nfs

参考地址: https://github.com/ehough/docker-nfs-server


偷偷的告诉你哟?极客全栈修炼】微信小程序已开放

可直接在微信里面直接浏览博主文章哟,后续将上线更多有趣的小工具。


0x01 Docker 快速部署 samba-server 服务

描述: Samba 是适用于 Linux 和 Unix 的标准 Windows 互操作性程序套件。自 1992 年以来,Samba 为所有使用 SMB/CIFS 协议的客户端提供了安全、稳定和快速的文件和打印服务,例如所有版本的 DOS 和 Windows、OS/2、Linux 等等。

步骤 01.部署 samba-server 服务

$ sudo mkdir -vp /app/storage/nfs
$ sudo docker run -it --name samba -p 139:139 -p 445:445 \
  -e TZ=Etc/UTC \
  -v /app/storage/nfs:/share \
  -d dperson/samba -p \
  -u "iuser;123456" \
  -s "myshare;/share;yes;no;yes"

步骤 02.Windows 中挂载 samba-server

# 方式1.
\\10.20.176.101\myshare

# 方式2.
C:\Users\WeiyiGeek>net use J: \\10.20.176.101\myshare "123456" /USER:iuser /PERSISTEN:yes
  # 命令成功完成。

C:\Users\WeiyiGeek>net use | findstr iuser
  # OK           J:        \\10.20.176.101\myshare     Microsoft Windows Network

可用 ENVIRONMENT VARIABLES:

* CHARMAP - As above, configure character mapping
* GENERIC - As above, configure a generic section option (See NOTE3 below)
* GLOBAL - As above, configure a global option (See NOTE3 below)

* IMPORT - As above, import a smbpassword file
* NMBD - As above, enable nmbd
* PERMISSIONS - As above, set file permissions on all shares
* RECYCLE - As above, disable recycle bin
* SHARE - As above, setup a share (See NOTE3 below)
* SMB - As above, disable SMB2 minimum version
* TZ - Set a timezone, IE EST5EDT
* USER - As above, setup a user (See NOTE3 below)
* WIDELINKS - As above, allow access wide symbolic links
* WORKGROUP - As above, set workgroup
* USERID - Set the UID for the samba server's default user (smbuser)
* GROUPID - Set the GID for the samba server's default user (smbuser)
* INCLUDE - As above, add a smb.conf include

官方地址: https://www.samba.org/
参考地址: https://hub.docker.com/r/dperson/samba
Github地址: https://github.com/dperson/samba/issues

步骤 03.Linux 中挂载 samba-server
首先,我们需要安装相关 samba 挂载依赖 cifs-utils 服务与 smbclient 命令

apt install cifs-utils smbclient -y

其次,若有密码请创建一个配置文件,存储用户名和密码

username=iuser
password=123456

然后,创建挂载的目录并挂载samba

# 使用mount命令进行挂载
mount -t cifs -o vers=3.0,credentials=/etc/.smbcredentials //10.20.176.101/myshare /media/share

# 开机自动挂载(optional)
vim /etc/fstab
//10.20.176.101/myshare /myshare cifs rw,relatime,vers=3.0,sec=ntlmssp,cache=strict,username=root,domain=SMBALIBABACLOUD,uid=0,noforceuid,gid=0,noforcegid,addr=10.41.40.92,file_mode=0755,dir_mode=0755,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1 1 1

亲,文章就要看完了,不关注一下【全栈工程师修炼指南】吗?

49fc8b52d1e7e280286d65cc25ef4e4c.jpeg

最后,查看挂载信息, 至此完毕

$ smbclient -L 10.20.176.101 -U root
$ df -Th
$ mount -l
//10.20.176.101/myshare on /myshare type cifs (rw,relatime,vers=3.0,sec=ntlmssp,cache=strict,username=root,domain=SMBALIBABACLOUD,uid=0,noforceuid,gid=0,noforcegid,addr=10.41.40.92,file_mode=0755,dir_mode=0755,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)

温馨提示: 若出现挂载失败可以通过查看日志 tail -f /var/log/kern.log

温馨提示: 若samba客户端连接报NT_STATUS_INVALID_NETWORK_RESPONSE错误解决办法,在samba服务端添加支持最小协议server min protocol = LANMAN1, 然后重启smb服务,客户端便可重新连接成功。

# 问题原因:
The defaults of ‘client min protocol’ and ‘server min protocol’ have been changed to SMB2_02.
This means clients without support for SMB2 or SMB3 are no longer able to connect to smbd (by default).
It also means client tools like smbclient and other, as well as applications making use of libsmbclient are no longer able to connect to servers without SMB2 or SMB3 support (by default).
It’s still possible to allow SMB1 dialects, e.g. NT1, LANMAN2 and LANMAN1 for client and server, as well as CORE and COREPLUS on the client.

本文至此完毕,更多技术文章,尽情等待下篇好文!

原文地址: https://blog.weiyigeek.top/2020/2-25-665.html

如果此篇文章对你有帮助,请你将它分享给更多的人! 

cad55014b51e3872169e069b12b8da34.gif

504ad2497913513b4d563045de1a6466.png 学习书籍推荐 往期发布文章 a36ede66518e7c5eef75274bea446668.png

公众号回复【0008】获取【Ubuntu22.04安装与加固脚本】

公众号回复【10001】获取【WinServer安全加固脚本】

公众号回复【10002】获取【KylinOS银河麒麟安全加固脚本】

公众号回复【0011】获取【k8S二进制安装部署教程】

公众号回复【0014】获取【Nginx学习之路汇总】

公众号回复【0015】获取【Jenkins学习之路汇总】

 热文推荐  

  • 企业运维 | Nginx服务在Docker与Kubernetes容器环境中快速搭建部署实践

  • 企业运维 | Redis内存数据库在Docker与Kubernetes环境中快速搭建部署单实例与主从集群实践

  • 企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践

  • 【企业运维实践】丢弃手中的docker build ,使用Kaniko直接在K8S集群或Containerd环境构建推送容器镜像

  • 企业运维实践-如何在K8S集群环境Gitlab+Jenkins+Jmeter+Grafana技术中实现自动化分布压力测试数据展示

欢迎长按(扫描)二维码 取更多渠道哟!

b6c4fd0eae06edb72857af4c1092a84a.gif

欢迎关注 【全栈工程师修炼指南】(^U^)ノ~YO

添加作者微信【weiyigeeker】,拉你一起学习交流吧!

关注回复【学习交流群】即可加入【安全开发运维沟通交流群

温馨提示: 由于作者水平有限,本章错漏缺点在所难免,希望读者批评指正,若有问题或建议请在文章末尾留下您宝贵的经验知识,或联系邮箱地址 master@weiyigeek.top 或 关注公众号 [全栈工程师修炼指南] 留言。

朋友点个【赞 + 在看】吧!

点击【"阅读原文"】获取更多有趣的知识!   

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python能自举吗?

Python能自举吗&#xff1f; Python是一门高级编程语言&#xff0c;由Guido van Rossum于1989年开发而来。Python被广泛用于Web开发、数据分析、人工智能等领域。因为Python语法简洁易懂&#xff0c;易于学习&#xff0c;许多人都称其为“入门语言”。 那么问题来了&#xff…

Spring Cloud——演进与应用的分布式系统开发利器

&#x1f338;作者简介&#xff1a;花想云&#xff0c;目前大二在读 &#xff0c;C/C领域新星创作者、运维领域新星创作者、CSDN2023新星计划导师、CSDN内容合伙人、阿里云专家博主、华为云云享专家 &#x1f338;专栏推荐&#xff1a;C语言初阶系列 、C语言进阶系列 、C系列、…

Linux之CentOS 7.9部署Oracle 11g r2_p13390677_112040最终版简易安装实测验证(桌面模式)

前言&#xff1a; Linux之CentOS 7.9部署Oracle 11g r2最终版安装实测验证&#xff08;桌面模式&#xff09; 介于前段时间的Windows以及linux无桌面模式环境&#xff0c;之前的linux oracl源包因缺失会存在报错现象&#xff0c;这次主要以oracle 11gr2更新包来记录下部署方式&…

不挂脖、不入耳,南卡NANK-OE骨传开放式蓝牙耳机

蓝牙耳机几乎成为和手机相同的EDC设备&#xff0c;无论是在工作还是通勤过程&#xff0c;无论是娱乐还是线上办公&#xff0c;随身携带的蓝牙耳机都能提供更舒适、更便捷的听觉和通话体验。 目前主流的蓝牙耳机有头戴式、入耳式和骨传耳机三类&#xff0c;考虑到使用的便携性普…

JavaScript:一门强大的脚本语言,掌握它,开启前端开发之路

目录 一、JavaScript的发展历史背景 二、JavaSxript的组成 三、javascript的基本特点 四、javascript的特性 五、Javascript的使用方式 六、JavaScript与Java的区别 七、JavaScript与JScript的区别 一、JavaScript的发展历史背景 JavaScript的发展历史可以追溯到20世纪9…

4 带你学MATLAB图像处理关键技术(matlab代码)

学习目标&#xff1a;学习图像处理关键技术知识点 %% 获取RGB图像中具体的3个像素点的像素值 clear all; RGBimread(peppers.png); r[12 23 36]; c[35 40 60]; pimpixel(RGB,r,c) %% 获取任意一点的像素值 非常方便 clear all; close all; imshow(peppers.png); himpixelin…

生产模块-多计量单位防坑提示

文章目录 一、概述二、数据案例2.1、物料主数据&#xff1a;2.2、业务数据准备2.3、库存数据查看2.3.1库存数据&#xff1a;基本计量单位&#xff1a;KG库存2.3.2、辅助单位单位&#xff1a;EA库存2.3.3、出库操作&#xff1a;以562方式为例场景1&#xff1a;场景2&#xff1a;…

进阶课程1:jvm内存模型

目录 JVM内存结构转换总结一下 JVM整体结构线程栈 JVM栈内存结构栈帧操作数栈局部变量表 JVM堆内存结构堆内存非堆内存 JMM内容&#xff1a;讲解JMM的三大特性1.原子性2.可见性3.有序性 视频 JVM内存结构 JVM内部由线程栈和堆内存组成。 简单描述就是我们的原生类型的局部变量…

Redis学习基础篇

目录 初识Redis 认识NoSQL 关联的 非关联的​编辑 认识Redis 安装Redis 1.1.安装Redis依赖 1.2.上传安装包并解压 该目录以及默认配置到环境变量&#xff0c;因此可以在任意目录下运行这些命令。其中&#xff1a; 图形化工具下载&#xff1a;Releases lework/RedisDe…

什么是 CSR,SSR,SSG 渲染

在Web开发中&#xff0c;网页渲染是一个重要的过程&#xff0c;它关系到网页的渲染速度和SEO排名&#xff0c;下面列举三种常见的网页渲染方式。 一、什么是浏览器端渲染 (CSR) CSR&#xff08;Client-Side Rendering&#xff09;是指将网页的内容生成和渲染都放在客户端&…

什么是真正的骨传导耳机,介绍几款高性价比的骨传导耳机

随着越来越多的人喜欢户外运动&#xff0c;骨传导耳机也逐渐被人们所熟知。骨传导耳机是通过颅骨和内耳传递声音到听觉中枢&#xff0c;所以听感相对较好&#xff0c;不会对耳朵造成任何损伤&#xff0c;因此在户外运动中使用骨传导耳机是一个很好的选择。接下来我会给大家介绍…

弟弟高考考了673分姐姐哭了一小时,大V竟然说是悲哀

大家好&#xff01;我是老洪。 6月23日起&#xff0c;全国各地高考分数线陆续公布中&#xff0c;老洪也一直在关注着。 时常看到有一些分享高考成绩的话题出现在热搜榜上。 比如老洪昨天提到的 女生高考712分查完分就睡觉了 复读女生涨61分坐地嚎啕大哭 女生发烧考618分挨个房间…

Linux——FTP文件传输服务

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。座右铭&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石&#xff0c;故能成其高。 个人主页&#xff1a;小李会科技的…

音视频BUG学习

找Bug流程 1、首先看出现概率是偶现还是必现 2、如果是必现&#xff0c;则复现整个bug过程&#xff0c;看Bug是否出现 如果是偶现&#xff0c;则分析问题视频 3、 问题一 【欧立】【远程抓拍】安卓-远程抓拍的视频&#xff0c;下载到手机本地相册&#xff0c;声音慢放 一、额…

【前端笔记】如何更新项目依赖

Node 软件包管理器&#xff08;NPM&#xff09;提供了各种功能来帮助你安装和维护项目的依赖关系。 由于错误修复、新功能和其他更新&#xff0c;依赖关系可能会随着时间的推移而变得过时。你的项目依赖越多&#xff0c;就越难跟上这些更新。 有时&#xff0c;新的软件包并不…

vm安装使用centos-7安装linux

1. 安装源&#xff0c;选择默认 2. 将网络和主机名&#xff08;以太网&#xff09;打开 3. 设置DHCP的租约 注&#xff1a;如果修改不了那么点击更改设置即可 4. 服务端口号&#xff1a;22 5. 常见报错以及解决方法 6. 安装目录 7. ip位置 8. 换源步骤&#xff08;乌班图的版…

machine code中的条件控制control flow和switch语句,循环Loop

上篇写了machine code基本知识概念&#xff0c;这篇再总结一下其中的流控制、条件判断&#xff0c;循环等实现。 一段machine code引出 在machine code中&#xff0c;通场使用jmp指令来跳转到某个代码块。比如一个机器码可能长这样&#xff1a; decision:subq $8, %rsptestl…

Synchronized锁

概览 锁的实现基于对象头重的MarkWord&#xff0c;分为 无锁 -> 偏向锁 -> 轻量锁 -> 重量锁 四个状态 状态转换 锁的获取与释放 模型&#xff1a; Markword&#xff1a;指向Monitor的指针Monitor&#xff1a;_cxq&#xff0c;_EntryList,_WaitSet,owner,_recurs…

提高透明LED屏幕显示效果设计指南

设计透明LED屏幕时&#xff0c;可以考虑以下几个因素来提高显示效果&#xff1a; 透明度和亮度&#xff1a;透明LED屏幕的设计目标是实现高透明度和足够的亮度。透明度取决于使用的材料和LED的布局方式。选择高透明度的材料&#xff0c;并确保LED的亮度足够高&#xff0c;以确保…

写给毕业季的学生们|我的五次 offer 选择经历

最近临近毕业季&#xff0c;群里有好多朋友在问面试和 offer 选择的问题&#xff0c;我分享下我过往的相关经历&#xff0c;希望能给各位朋友有所启发。 我是谁&#xff1f; 大家好&#xff0c;我是拭心&#xff0c;内蒙古人&#xff0c;16 年本科毕业于西安电子科技大学&#…