更新 NAS-To-Linux-Docker.md

This commit is contained in:
8ga
2026-07-29 14:15:52 +08:00
parent 931272a43d
commit e3cdeec32f

View File

@@ -1,26 +1,27 @@
# Intro
本文介绍如何把 NAS 主机目录挂载到 Linux 主机,并通过 Volume 挂载到 Docker 容器里。相当于给 Docker 容器挂了个云盘而不是本地盘去存储数据,借助 NAS 的阵列盘实现高可靠数据存储。
## 第一步、挂载到 Linux
本文介绍如何把 NAS 主机目录挂载到 Linux 主机,并通过 Volume 挂载到 Docker 容器,借助 NAS 的阵列盘实现高可靠数据存储。
- NAS"/vol1/workspace"
- Linux"/mnt/nas/vol1/workspace"
- Docker"/workspace"
假设要把 NAS 的"/vol1/workspace"挂载到 Linux 的 "/mnt/nas/vol1/workspace"。
假设 NAS 的用户名密码是"admin/123456"IP为"192.168.1.100",目录映射目标:"/vol1/workspace" -> "/mnt/nas/vol1/workspace" -> "/workspace"
### 基于 NFS 协议(推荐)
## 方案一、基于 NFS 协议(推荐)
假设 NAS、Linux、Docker 都用 UID=1000 的用户运行。
1. 安装相关工具:
```bash
# Debian/Ubuntu
sudo apt update && sudo apt install nfs-common -y
# CentOS/RHE
# CentOS/RHEL
sudo yum install nfs-utils
```
2. 创建本地挂载点
2. 创建挂载点
```bash
sudo mkdir -p /mnt/nas/vol1/workspace
@@ -29,8 +30,7 @@ sudo mkdir -p /mnt/nas/vol1/workspace
3. 执行挂载
```bash
# 假设 NAS 的 IP 是"192.168.1.100"
sudo mount -t nfs 192.168.1.100:/vol1/workspace /mnt/nas/vol1/workspace
sudo mount -t nfs -o uid=1000,gid=1000 192.168.1.100:/vol1/workspace /mnt/nas/vol1/workspace
```
4. 设置开机自动挂载(可选)
@@ -45,7 +45,13 @@ sudo nano vi /etc/fstab
192.168.1.100:/vol1/workspace /mnt/nas/vol1/workspace nfs defaults,_netdev 0 0
```
### 基于 SMB 协议
5. 挂载到 Docker 容器
```bash
docker run -v /mnt/nas/vol1/workspace:/workspace <镜像名>
```
## 方案二、基于 SMB 协议
1. 安装 CIFS 客户端工具
@@ -54,4 +60,34 @@ sudo nano vi /etc/fstab
sudo apt update && sudo apt install cifs-utils -y
# CentOS/RHEL
sudo yum install cifs-utils -y
```
2. 创建挂载点
```bash
sudo mkdir -p /mnt/nas/vol1/workspace
```
3. 执行挂载
```bash
sudo mount -t cifs //192.168.1.100/vol1/workspace /mnt/nas/vol1/workspace -o username=admin,password=123456
```
4. 设置开机自动挂载(可选)
```bash
sudo nano vi /etc/fstab
```
在文件末尾追加一行:
```text
//192.168.1.100/vol1/workspace /mnt/nas/vol1/workspace cifs username=admin,password=123456,iocharset=utf8 0 0
```
5. 挂载到 Docker 容器
```bash
docker run -v /mnt/nas/vol1/workspace:/workspace <镜像名>
```