获取NAS文件夹的真实路径并挂载到Docker容器
在使用 Docker 时,您可能需要将 NAS 中的文件夹挂载到 Docker 容器中,以便容器可以访问 NAS 上的数据。以下是详细的步骤和注意事项,帮助您完成这一操作。
-
Docker 目前支持挂载 NAS 中的共享文件夹,但个人文件夹不支持。
-
如果您需要挂载个人文件夹,请考虑将其移动到共享文件夹中。
获取文件夹路径
-
找到目标文件夹(例如“media”文件夹)。
-
右键点击目标文件夹,选择【属性】选项。
-
在打开的属性窗口中,复制文件夹的位置信息,这个就是文件夹的真实路径。示例:
/volume1/media
配置Docker Compose
打开您的 Docker Compose 配置,在volumes
部分添加 NAS 文件夹的挂载路径。
挂载路径格式为:/NAS真实路径:/容器内路径
,例如:
volumes:
- ./config:/config
- /volume1/media:/media
说明:
-
./config:/config
:配置结构为NAS目录:容器目录
,表示将当前目录下的config
文件夹挂载到容器的/config
路径。./
表示路径是在当前创建的项目所选择的存放路径内。 -
/volume1/media:/media
:将NAS中的media
共享文件夹挂载到容器的/media
路径。
自定义容器目录
容器内的路径可以根据需要自定义,例如/media
或/volume1/media
,以便在容器内更容易找到。
注意:
-
Compose 的 NAS真实路径需与NAS文件管理器中显示的【位置】一致,避免因客户端路径差异导致挂载失败。
-
左侧路径:粘贴NAS真实路径(如
/volume1/media
)。 -
右侧路径:自定义容器内路径(如
/media
),建议与NAS路径保持层级一致。
权限管理(可选)
如果使用共享文件夹挂载后容器访问共享文件夹内容时出现权限问题,则需要在compose
的environment
节点内添加PUID
、PGID
、UMASK
分别设置为0
。确保容器与 NAS 目录权限匹配。
environment:
- PUID=0
- PGID=0
- UMASK=0
完整的Docker Compose配置示例
以下是一个完整的docker-compose.yaml
示例,包含挂载NAS文件夹的配置:
services:
emby:
image: emby/embyserver:beta # 镜像名
container_name: emby-server
restart: always # 重启策略
devices:
- /dev/dri:/dev/dri # 启用核显
environment:
PUID: 0 # 容器运行用户ID,root权限
PGID: 0 # 容器运行用户组ID,root权限
volumes:
- ./config:/config # 配置文件
- ./metadata:/metadata # 媒体元数据
- /volume3/media:media # 影片存放路径,容器可以读取路径中的影片,冒号左侧的路径替换为你在NAS上存放影视的实际路径,冒号右侧是容器内路径
ports:
- 8096:8096 # 将容器的 8096 端口映射到 NAS 的 8096 端口