centos7 docker 挂载文件思路
今天小伙伴提供了新的文件服务器,让使用挂载方式,由于第一次没有经验,特此记录下。
关于挂载挺简单的, 就 mount 关键字, 更多内容可以参考以下文章:
1、图解Linux中的挂载原理:https://www.solves.com.cn/it/rj/czxt/linux/2019-05-21/483.html
2、mount挂载相关参数详解:https://www.cnblogs.com/xiaofeng666/p/10100906.html
3、Linux远程目录挂载:https://www.cnblogs.com/zh94/p/11922744.html
4、CentOS 7 挂载远程共享目录:https://sonicshield.cn/linux-nfs.html
由于使用的是centos7服务器,所以实际按照上面第四篇执行就可以顺利挂载成功,因为原文非博客园文章,为防止以后站点404,特此记录下来:
------------------------------------------------------------------------------------
第一步:
首先执行如下命令安装 nfs-utils 和 rpcbind:
yum -y install nfs-utils rpcbind
启动 nfs & rpcbind,有的建议说为了避免错误要先执行启动 rpcbind 再执行启动 nfs
systemctl start rpcbind
systemctl start nfs
以上安装启动步骤,不管是要被挂载的源服务器 还是 执行挂载的目标服务器 都需要。
第二步:(被挂载端文件服务器端—源服务器,我这里因为是挂载端—目标服务器,所以不需要执行这一步,直接执行第三步)
创建要共享的文件夹,并设置权限(假设共享文件夹所在机器 IP 为:66.66.66.6)
mkdir -p /data/share
chmod -R 777 /data/share
添加文件访问权限到这个文件中 /etc/exports 并使其生效
//允许 66.*.*.* 的 IP 段访问此文件夹
/data/share 66.*.*.*(rw, no_root_squash, no_all_squash, sync)
需执行以下命令令其生效:
exportfs -r
第三步:
将上一步创建的文件夹挂载到自己的机器上
mount -t nfs 66.66.66.6:/data/serverDir /data/clientDir
扩展阅读
开机自动挂载
vim /etc/fstab
66.66.66.6:/data/serverDir /data/clientDir nfs defaults 0 0
开机自动启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service
原文地址:https://www.cnblogs.com/jying/p/12173090.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
但我这里的服务是配置在jenkins中的定时任务,而且还在docker中,因为docker要挂载服务器本机,所以就有权限问题,关于docker jenkins 在 centos 7 中的搭建,可以参考我之前的文章:https://www.cnblogs.com/jying/p/12173090.html
因为docker jenkins 中文件夹权限为jenkins,而且我们已经挂载过 jenkins的配置文件到虚拟机,所以再挂载共享文件夹的时候应该挂载到虚拟机的jenkins文件夹中,比如,我上面文章中的jenkins挂载在/www/my_jenkins 下,那么就继续在此文件夹下添加文件夹data用来挂载~~
文件夹 /data/downloads 已经挂载在docker jenkins 下,那么只需执行如下:
mount -t nfs 66.66.66.6:/data /www/my_jenkins/data/downloads
mount 默认的规则是后挂载的目录会将前面挂载的目录文件隐藏(不是删除),这个通过取消挂载(umount)就可还原显示,此处不详细解释了。
不管第几次挂载之后新增删改的文件都会显示。
还是拿上面的例子,比如原来的data/downloads 文件夹下有文件1,添加挂载66.66.66.6 后原来的文件1便看不见了,这时候不管是66.66.66.6 中增删改文件还是 jenkins中增删改文件,都会在挂载的66.66.66.6 上且两个服务器都显示可见。