docker下使用NFS服务共享

一、环境介绍

使用docker两台centos7虚拟机
服务端IP:172.172.0.7
客户端IP:172.172.0.8

二、操作步骤

服务端执行(172.172.0.7)

1.创建容器
在docker中开启NFS服务需要挂载主机的目录,才能通过NFS共享

 docker run -dit -v /mnt:/dockermnt  --privileged --net docker-br0 --ip 172.172.0.7 --name nfs-server-01 centos  /usr/sbin/init

2.进入容器主机

docker exec -it 5b8ce1243e00  /bin/bash

3.安装NFS服务
因为centos7自带了rpcbind,所以不用安装rpc服务,rpc监听在111端口,可以使用 ss -tnulp | grep 111查看rpc服务是否自动启动,如果没有启动,就systemctl start rpcbind 启动rpc服务。rpc在nfs服务器搭建过程中至关重要,因为rpc能够获得nfs服务器端的端口号等信息,nfs服务器端通过rpc获得这些信息后才能连接nfs服务器端

yum -y install nfs-utils  

4.查看使用安装成功

 rpm -qa nfs-utils


5.编辑/etc/exports
添加以下内容

  /dockermnt  172.172.0.0/24(rw,async)

6.启动NFS服务

systemctl start nfs

启动后 使用rpcinfo -p 172.172.0.7 查看


7.使用showmount -e localhost

8.修改/dockermnt目录权限
非常重要,不然目录只读,无法写入数据

chown -R nfsnobody.nfsnobody /dockermnt

9.开机启动服务

systemctl enable nfs-server.server
systemctl enable rpcbind

让nfs,rpcbind开机自动启动,实验完成。

客户端执行(172.172.0.8)

1.安装NFS
客户端上不需要启动nfs服务,只是为了使用showmount工具

yum -y install nfs-utils 

2.检测rpc是否启动

rpcinfo -p

3.使用showmount -e 172.172.0.7查看


4.挂载到本地/nfs目录

  mount -t nfs 172.172.0.7:/dockermnt /nfs  

注意事项

1.重载NFS配置
修改/etc/exports后,需执行/etc/init.d/nfs reload或exportfs-rv重新加载NFS配置,但不需要restart NFS。在生产环境中,此操作要注意。

2.挂载优化
  在企业工作场景,一般来说,NFS服务器共享的只是普通静态数据(图片、附件、视频),不需要执行suid、exec等权限,挂载的这个文件系统只能作为数据存取之用,无法执行程序,对于客户端来讲增加了安全性,例如:很多木马篡改站点文件都是由上传入口上传的程序到存储目录,然后执行的。 因此在挂载的时候,用下面的命令很有必要:

mount -t nfs -o nosuid, noexec, nodev, rw 10.0.0.7: /data /mnt
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容