Files
container/nas-to-nfs-linux-docker.md
2026-07-29 14:49:52 +08:00

2.2 KiB
Raw Blame History

Intro

本文介绍如何把 NAS 主机目录挂载到 Linux 主机,并通过 Volume 挂载到 Docker 容器,借助 NAS 的阵列盘实现高可靠数据存储。

  • NAS"/vol1/workspace"
  • Linux"/mnt/nas/vol1/workspace"
  • Docker"/workspace"

假设 NAS 的用户名密码是"admin/123456"IP为"192.168.1.100",目录映射目标:"/vol1/workspace" -> "/mnt/nas/vol1/workspace" -> "/workspace"。

基于 NFS 协议挂载

  1. 在 Linux 安装相关工具

Debian/Ubuntu

sudo apt update && sudo apt install nfs-common -y

CentOS/RHEL

sudo yum install nfs-utils
  1. 创建目录

NAS

sudo /vol1/workspace

Linux

sudo mkdir -p /mnt/nas/vol1/workspace
  1. 授权UID=1000GID=1000

NAS

sudo chown -R 1000:1000 /vol1/workspace

Linux

sudo chown -R 1000:1000 /mnt/nas/vol1/workspace
  1. 在 Linux 执行挂载
sudo mount -t nfs -o rw,vers=4.2,noatime,rsize=1048576,wsize=1048576,timeo=1200,retrans=2,_netdev 192.168.1.100:/vol1/workspace /mnt/nas/vol1/workspace
参数名称 说明
rw 拥有读写权限
vers 使用 nfs 4.2 版本
noatime 不更新文件的访问时间戳,能显著减少磁盘 I/O 和网络开销,提升性能
rsize/wsize 读写块大小1MB 是 NFS v4.2 推荐的尺寸,适合高速内网传输文件,有效利用网络带宽
timeo 客户端等待重传前的超时时间给网络波动留的容忍度单位是厘秒1200=120秒
retrans 连接彻底失败之前,仅重传 2 次。配合长超时,客户端会很有耐心地等待,不会因短暂网络抖动而频繁报错
_netdev 告诉系统等网络可用后再挂载,防止在启动初期,网络未就绪时挂载失败
  1. 在 Linux 设置开机自动挂载(可选但强烈推荐)
sudo nano /etc/fstab

在文件末尾追加一行:

192.168.1.100:/vol1/workspace /mnt/nas/vol1/workspace nfs rw,vers=4.2,noatime,rsize=1048576,wsize=1048576,timeo=1200,retrans=2,_netdev 0 0
  1. 在 Linux 运行 Docker 容器并挂载
docker run -v /mnt/nas/vol1/workspace:/workspace --user 1000:1000 <镜像名>