Ubuntu16.04安装nfs的两种方式

一、安装包安装
二、docker安装

一、安装包安装。

步骤:安装相关的包,配置,挂载。

1、安装

sudo apt-get install nfs-kernel-server
(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)
分开看就是
1.服务器端:sudo apt-get install portmap
2.服务器端:sudo apt-get install nfs-kernel-server
3.客户端:sudo apt-get install nfs-common

2、配置nfs,编辑文件 sudo vim /etc/exports

在末尾一行加入

/some/where/share *(rw,sync,no_root_squash,no_subtree_check)

各个参数之间的含义:
/some/where/share与nfs服务客户端共享的目录,
*:允许所有的网段访问,也可以使用具体的IP
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限。
no_subtree_check:不检查父目录的权限。更多的参数说明我在文章下面贴出来了!
设置 /some/where/share 目录权限
sudo chmod 777 work -R

重启服务:
···

sudo /etc/init.d/portmap restart <---重启portmap,

sudo /etc/init.d/nfs-kernel-server restart <---重启nfs服务

showmount -e <---显示共享出的目录

···
另:nfs是一个RPC程序,使用它前,经常要映射好端口,通过portmap设定,不过我这里没设

重启nfs服务有2种方式
$ sudo /etc/init.d/nfs-kernel-server restart
$ sudo service nfs-kernel-server restart

3、挂载

sudo mount -t nfs localhost:/some/where/share /mnt
sudo mount 127.0.0.1:/some/where/share /mnt

  • 注:localhost为本机linux的IP地址
  • 取消挂载用:
    sudo umount /mnt

如果用在嵌入式设备上挂载,要加上参数-o nolock
mount -t nfs -o nolock 192.168.1.8:/some/where/share /mnt
apt-cache search nfs
nfs 30000000 192.168.1.8:/some/where/share/fs.yaffs2
这和用tftp下载一样的效果

二、docker安装
1、先安装docker。
2、下载镜像itsthenetwork/nfs-server-alpine lates

[root@monitor ~]# docker images | grep nfs
itsthenetwork/nfs-server-alpine   latest              30f582fb8f6e        6 months ago        51.9MB

3、运行docker镜像

[root@monitor ~]# docker run -d --name nfs --privileged -p 2049:2049 -v /tmp/test:/nfsshare -e SHARED_DIRECTORY=/nfsshare itsthenetwork/nfs-server-alpine:latest

参数说明:

  • -e 环境变量SHARED_DIRECTORY指定的任何目录
  • --net=host或-p 2049:2049通过主机网络堆栈从外部访问共享。
  • -v /tmp/test 共享的文件路径
  • -e READ_ONLY=true将导致导出文件包含ro而不是rw仅允许客户端进行读取访问。
  • -e SYNC=true将导致导出文件包含sync而不是async启用同步模式

由于/ etc / exports文件中fsid=0设置了参数,因此从客户端安装时无需指定文件夹名称。例如,即使正在安装和共享的文件夹是/ nfsshare,这也可以正常工作:
挂载:
sudo mount -v ip:/ /some/where/here
ip:共享文件的ip。
卸载:
sudo umount /some/where/here

除非由上面列出的环境变量修改,否则/ etc / exports文件包含这些参数:
*(rw,fsid=0,async,no_subtree_check,no_auth_nlm,insecure,no_root_squash)

  • 请注意,showmount由于rpcbind未运行,该命令将无法对服务器起作用。

你可能感兴趣的:(Ubuntu16.04安装nfs的两种方式)