docker离线安装nfs文件服务所需镜像,centos7安装nfs所需的安装包
安装所需要的镜像和安装包下载链接:https://download.csdn.net/download/qq_14910065/85059009
一、安装 NFS 服务器
1.上传镜像
docker load -i nfs.tar.gz
2、创建数据文件夹
mkdir -p /docker/nfs/data
3、创建启动脚本
cat > /docker/nfs/start.sh << EOF
docker run --name nfs --privileged \
-v /docker/nfs/data:/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 \
-d fuzzle/docker-nfs-server:latest
EOF
chmod +x /docker/nfs/start.sh
sh /docker/nfs/start.sh #启动容器
二、安装 客户端(这里以centos7为例)
1、安装nfs
mkdir -p /opt/nfs #创建nfs安装路径
cd /opt/nfs #上传离线安装包(13个安装包)
gssproxy-0.7.0-30.el7_9.x86_64.rpm
libini_config-1.3.1-32.el7.x86_64.rpm
nfs-utils-1.3.0-0.68.el7.2.x86_64.rpm
keyutils-1.5.8-3.el7.x86_64.rpm
libnfsidmap-0.25-19.el7.x86_64.rpm
quota-4.01-19.el7.x86_64.rpm
libbasicobjects-0.1.1-32.el7.x86_64.rpm
libpath_utils-0.2.1-32.el7.x86_64.rpm
rpcbind-0.2.0-49.el7.x86_64.rpm
libcollection-0.7.0-32.el7.x86_64.rpm
libref_array-0.1.5-32.el7.x86_64.rpm
libevent-2.0.21-4.el7.x86_64.rpm
libverto-libevent-0.2.5-4.el7.x86_64.rpm
2.安装NFS
cd /opt/nfs
rpm -Uvh *.rpm --nodeps --force # 在nfs离线安装包的目录下安装所有包
echo $? #如果安装没有提示,输入结果为0就是对的
systemctl enable rpcbind.service && systemctl enable nfs-server.service #启动服务
systemctl start rpcbind.service && systemctl start nfs-server.service #启动服务
3、挂载
mkdir -p /mnt/nfs_share
mount -t nfs 106.12.161.158:/nfs /mnt/nfs_share #106.12.161.158:/nfs,这里的nfs是服务器容器中的地址,而且只能挂在容器中的目录
4.测试
cd /mnt/nfs_share
echo "hello,world" > hello.html
5.卸载
umount /mnt/nfs_share 可能会出现device is busy的问题。
解决方法:
1. 首先查找谁在占用:#fuser /mnt/nfs_share 得到进程号。
2. 查找进程:#ps –ef|grep 进程号。
3. 杀死进程:#kill -9 进程号
4. 然后umount ,如不行 umount –f /mnt/nfs_share强行卸载。
5. 再不行重新启动nfsd,再执行上述命令umount文件系统。