diff --git a/NAS-To-Linux-Docker.md b/NAS-To-Linux-Docker.md index c31b41f..e201bb8 100644 --- a/NAS-To-Linux-Docker.md +++ b/NAS-To-Linux-Docker.md @@ -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 <镜像名> ``` \ No newline at end of file