Docker 容器无法写入 cifs 共享



我有一个docker compose,用于我正在使用多个容器构建的媒体服务器,我希望这些容器能够R/W安装在主机上的cifs共享,在尝试了多种方法后,我似乎无法让它们写入。这是挂载的共享:/etc/fstab

//192.168.X.X/Media /mnt/Media cifs cache=loose,credentials=/root/.smbcrd,vers=3.0 0 0

这是码头工人组成的多个集装箱中的一个:

emby:
image: linuxserver/emby
container_name: emby
environment:
- PUID=998
- PGID=100
- TZ=Europe/Paris
- UMASK_SET=022 #optional
volumes:
- /mnt/Media/Configs/Emby:/config
- /mnt/Media/Series:/data/series
- /mnt/Media/Films:/data/movies
ports:
- 8096:8096
- 8920:8920 
restart: unless-stopped

我正在学习docker,我不认为在每个容器中安装cifs共享是解决方案,我需要在docker compose的卷部分安装共享吗?,共享是一个同义词nas。有人能帮忙吗?

Docker的CIFS可能性

让容器装载(错误方法(

services:
name:
cap_add:
- SYS_ADMIN
- DAC_READ_SEARCH
security_opt:
- "apparmor=unconfined"

Dockerfile:ENTRYPOINT ["/bin/bash", "mount.sh" ]

mount.sh:

#!/bin/bash
mkdir /mnt/whatever
mount -v -t cifs -o username=xx,password=xx,vers=SMB-Version-Number,dir_mode=0744,file_mode=0744 //IP/Path /mnt/whatever
<start your container logic>

糟糕的方法是由于非常糟糕的安全性,但在某些用例中可能会有所帮助。

让docker挂载

services:
name:
volumes:
- my_mount:/mnt/whatever
volumes:
my_mount: 
driver_opts:
type: cifs
o: username=xx,password=xx,vers=SMB-Version-Number
device: //IP/Path

让主机装载

mount -t cifs -o username=xx,password=xx,                
uid=dockeruid,forceuid, 
gid=dockergid,forcegid,                   
file_mode=744,dir_mode=744 //IP/Path /mnt/whatever   

运行docker容器,然后使用这个用户:

services:
name:
user: "dockeruid:dockergid"
volumes:
- /mnt/whatever:/mnt/whatever

最新更新