使用Docker的NFS-Ganesha镜像搭建NFS服务器的详细过程如下:
准备工作
- 安装Docker并启动;
- 安装NFS客户端并测试网络连通性;
- 准备一个共享目录。
拉取镜像
执行以下命令拉取最新版的NFS-Ganesha镜像:
docker pull crispy1989/docker-nfs-ganesha
创建容器
执行以下命令创建容器:
docker run -it --privileged -p 111:111 -p 2049:2049 -p 38465-38467:38465-38467 -p 38468:38468 -v /path/to/shared/folder:/export/data --name nfs-ganesha crispy1989/docker-nfs-ganesha /bin/bash
解释一下各个参数的含义:
参数 | 含义 |
---|---|
-it | 分配一个终端并保持连接 |
--privileged | 赋予容器权限 |
-p | 端口映射,将容器内的端口映射到主机的端口 |
-v | 同步一些主机目录结构到容器中 |
--name | 指定容器名字 |
crispy1989/docker-nfs-ganesha | 镜像名字和标签 |
/bin/bash | 容器启动时进入的shell |
配置NFS服务器
在容器中执行以下命令启动NFS服务器
service rpcbind start
service nfs-ganesha start
在容器中执行以下命令创建共享目录
mkdir /export/data
chmod 777 /export/data
在容器中执行以下命令配置NFS共享
echo "\
EXPORT{
Export_Id = 1;
Path = /export/data;
Pseudo = /nfs;
Access_Type = RW;
Squash = No_Root_Squash;
Protocols = 3,4;
Transports = UDP,TCP;
SecType = None;
}" > /etc/ganesha/ganesha.conf
完成
至此,我们已经成功的搭建了一个NFS服务器容器,可以在其它有网络访问权限的主机上使用以下命令挂载:
mount -t nfs -o nolock -o proto=tcp -o port=2049 docker_host:/nfs /mnt
其中,docker_host
为运行NFS服务器的主机名或IP地址,/nfs
为上文配置的Pseudo路径,/mnt
为我们本地的挂载点。
示例
以在Ubuntu主机上使用NFS挂载容器的共享目录为例:
安装NFS客户端
sudo apt-get update
sudo apt-get install nfs-common
测试网络连通性
ping docker_host
其中,docker_host
为运行NFS服务器的主机名或IP地址。
挂载共享目录
sudo mount -t nfs -o nolock,proto=tcp,port=2049 docker_host:/nfs /mnt
其中,docker_host
为运行NFS服务器的主机名或IP地址,/nfs
为上文配置的Pseudo路径,/mnt
为我们本地的挂载点。
卸载共享目录
sudo umount /mnt
至此,成功挂载容器内的共享目录,并实现了数据共享。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Docker的NFS-Ganesha镜像搭建nfs服务器的详细过程 - Python技术站