目录
对nfs服务器进行操作
Ⅰ、安装软件包
Ⅱ、启动服务
Ⅲ、查看rpcbind的端口和进程
Ⅳ、创建nfs共享目录
Ⅴ、编辑/etc/exports文件 **修改配置文件需要重新加载配置文件( exportfs -arv)
1、/web 192.168.8.1/24(rw,sync,all_squash)
2、让共享目录生效
Ⅵ、设置共享目录的权限
Ⅶ、关闭防火墙,并查看
对所有宿主机操作
Ⅰ、安装软件
Ⅱ、新建挂载目录,然后挂载
Ⅲ、在客户机上直接创建一个服务,帮忙启动容器,并且创建卷
1.尝试使用卷对应nfs服务器共享的目录
2.容器是否会自动挂载,创建容器的时候,指定nfs服务器的路径
3.直接挂载
对nfs服务器进行操作
Ⅰ、安装软件包
yum install -y nfs-utils
Ⅱ、启动服务
[root@nfs-server ~]# systemctl start nfs
[root@nfs-server ~]# systemctl enable nfs Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@nfs-server ~]#
Ⅲ、查看rpcbind的端口和进程
ps aux|grep nfs 或 ss -anplut|grep rpcbind
?
nfsd进程将监听端口的活外包给了rpcbind进程
Ⅳ、创建nfs共享目录
[root@nfs ~]# mkdir /web
[root@nfs ~]# cd /web/
[root@nfs web]# ls
index.html
[root@nfs web]# cat index.html
welcome to sanchuang changsha nongda
Ⅴ、编辑/etc/exports文件 **修改配置文件需要重新加载配置文件( exportfs -arv)
1、/web 192.168.8.1/24(rw,sync,all_squash)
-
/web 共享的目录的路径 -
192.168.1.0/24 允许能访问的机器的网段 -
(rw,sync,all_squash) 拥有的权限 rw 可以读写 sync 在host上修改了数据,里面同步到nfs服务器 -
all_squash 任何机器上的任何用户连接过来都看成一个普通的用户nobody对待
2、让共享目录生效
[root@nfs-server web]# exportfs -av
exporting 192.168.1.0/24:/web
[root@nfs-server web]#
或者
service nfs restart
Ⅵ、设置共享目录的权限
?
共享权限 --》linux系统里的权限
注:nfs里的权限需要考虑共享权限和系统里的权限
客户端
[root@docker-1 nfs-web]# mkdir sc
mkdir: 无法创建目录"sc": 权限不够
[root@docker-1 nfs-web]# mkdir sc
[root@docker-1 nfs-web]# ls
index.html sc
[root@docker-1 nfs-web]#
宿主机
[root@nfs web]# chmod 777 /web
[root@nfs web]# ll
总用量 4
-rw-r--r-- 1 root root 186 8月 29 21:17 index.html
drwxr-xr-x 2 nfsnobody nfsnobody 6 8月 29 22:03 sc
[root@nfs web]#
此处服务端在/web里创建的sc文件夹,可以理解为服务端进行的操作通过nfsnobody进程去同步到宿主机
[root@nfs web]# cat /etc/passwd|grep nfs
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@nfs web]#
更改一下/web 目录的权限,方便后面操作
[root@nfs web]# chmod 775 /web
[root@nfs web]# chown nfsnobody:nfsnobody /web/
[root@nfs web]# ll
总用量 4
-rw-r--r-- 1 root root 186 8月 29 21:17 index.html
drwxr-xr-x 2 nfsnobody nfsnobody 6 8月 29 22:03 sc
[root@nfs web]#
Ⅶ、关闭防火墙,并查看
[root@nfs web]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@nfs web]# getenforce
Disabled
[root@nfs web]# iptables -L
……
对所有宿主机操作
Ⅰ、安装软件
Ⅱ、新建挂载目录,然后挂载
?
Ⅲ、在客户机上直接创建一个服务,帮忙启动容器,并且创建卷
问题是如何让容器使用nfs共享的目录
1.尝试使用卷对应nfs服务器共享的目录
1)、创建一个卷底层挂载到nfs服务器192.168.8.120上的共享目录/web里
-
docker volume create --driver local --opt type=nfs --opt o=addr=192.168.8.120,nolock,soft,rw,sync --opt device=:/web nfs-web-6 nfs-web-6
[root@docker-1 nfs-web]# docker volume ls
DRIVER VOLUME NAME
local 2fd54580b0555c44857d927ae219d9a86a8a60c5ab51702d6e6bcbf49964b4f8
local 198995249bf762f4a8bcd1426a51ad4daba470fa3d3a918b415f83887a980ad1
local e27919fb6ed10fb0f722508e9c0d5d0a0604fd8b53199970666c02557105a4cd
local nginx-web
[root@docker-1 nfs-web]# docker volume create --driver local --opt type=nfs --opt o=addr=192.168.8.120,nolock,soft,rw,sync --opt device=:/web nfs-web-6
nfs-web-6
[root@docker-1 nfs-web]# docker volume create --driver local --opt type=nfs --opt o=addr=192.168.8.120,nolock,soft,rw,sync --opt device=:/web nfs-web-6
nfs-web-6
[root@docker-1 nfs-web]# docker volume ls
DRIVER VOLUME NAME
local 2fd54580b0555c44857d927ae219d9a86a8a60c5ab51702d6e6bcbf49964b4f8
local 198995249bf762f4a8bcd1426a51ad4daba470fa3d3a918b415f83887a980ad1
local e27919fb6ed10fb0f722508e9c0d5d0a0604fd8b53199970666c02557105a4cd
local nfs-web-6
local nginx-web
[root@docker-1 nfs-web]# docker volume inspect nfs-web-6 #查看详细信息
[
{
"CreatedAt": "2022-08-29T21:11:47+08:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/nfs-web-6/_data",
"Name": "nfs-web-6",
"Options": {
"device": ":/web",
"o": "addr=192.168.8.120,nolock,soft,rw,sync",
"type": "nfs"
},
"Scope": "local"
}
]
[root@docker-1 nfs-web]#
2)、创建一个容器使用nfs-web-6卷
[root@docker-1 nfs-web]# docker run -d -p 8818:80 -v nfs-web-6:/usr/share/nginx/html --name siyx-nginx-8 nginx
d0b0d52b5b804e1dfb25328f350405ad1ddd972d312fa700ca56820f7f3e86ae
[root@docker-1 nfs-web]#
?
3)、在nfs机器上更改数据,再次测试
[root@nfs web]# vim index.html
[root@nfs web]# cat index.html
welcome to sanchuang changsha nongda
welcome to sanchuang changsha nongda
welcome to sanchuang changsha nongda
welcome to sanchuang changsha nongda
welcome to sanchuang changsha nongda
[root@nfs web]#
?
2.容器是否会自动挂载,创建容器的时候,指定nfs服务器的路径
3.直接挂载
docker run -d -p 8809:80 -v /nfs-web:/usr/share/nginx/html --name siyx-nginx nginx
?
|