在Dockers中,常需要挂载volume,使存储内容与服务分离,以及多个docker容器共享一个存储volume,这个时候就可以使用ns来挂载docker volume来解决这个问题

系统环境说明:CentOS Linux release 7.9.2009 (Core)

1. 服务端安装

  1. # 安装nfs只需要执行这一个命令就可以了
  2. sudo yum -y install nfs-utils
  3. # 配置NFS开机自启
  4. sudo systemctl enable rpcbind # rpcbind 属于它的依赖
  5. sudo systemctl enable nfs
  6. # 启动NFS
  7. sudo systemctl start rpcbind
  8. sudo systemctl start nfs

2. 防火墙配置

  1. # 将nfs的规则添加到防火墙
  2. sudo firewall-cmd --zone=public --permanent --add-service={rpc-bind,mountd,nfs}
  3. # 加载规则使规则生效
  4. sudo firewall-cmd --reload

3. 配置共享目录

这一步比较重要,需要根据自己需要,找一个专门存放共享目录的地址,来进行数据存储, 常用的:/data,需要自己新建

  1. sudo mkdir /data
  2. sudo chmod 755 /data # 给data目录相关权限

4. 配置nfs导出目录

  1. sudo vim /etc/exports

添加配置内容如下:

  1. # 将1.1.1.1改为需要共享此nfs服务的客户端主机的ip,可以使网段以及单独ip
  2. /data/ 1.1.1.1(rw,sync,no_root_squash,no_all_squash)

添加完成后,保存退出,然后重启nfs服务

  1. sudo systemctl restart nfs

配置说明:

  1. /data:共享目录位置。
  2. 1.1.1.1: 客户端 IP,也可以把自己的网段放在这个位置,*: 代表所有,即没有限制。
  3. rw:权限设置,可读可写。
  4. sync:同步共享目录。
  5. no_root_squash:可以使用 root 授权。
  6. no_all_squash:可以使用普通用户授权。

检测共享目录

  1. # 在nfs服务端
  2. showmount -e localhost
  3. # 也可以在nfs客户端
  4. showmount -e nfs-server-ip