首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker容器不能在cifs共享中写入

Docker容器不能在cifs共享中写入
EN

Stack Overflow用户
提问于 2022-02-27 19:19:23
回答 1查看 1.4K关注 0票数 1

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

代码语言:javascript
复制
//192.168.X.X/Media /mnt/Media cifs cache=loose,credentials=/root/.smbcrd,vers=3.0 0 0

这里有一个多集装箱码头组成:

代码语言:javascript
复制
 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共享是解决方案,我需要在我的坞组合的卷部分中挂载这个份额吗?这个共享是一个语法nas。有人能帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-28 10:41:38

CIFS对码头工人的可能性

让容器安装(糟糕的方法)

代码语言:javascript
复制
services:
  name:
    cap_add:
      - SYS_ADMIN
      - DAC_READ_SEARCH
    security_opt:
      - "apparmor=unconfined"

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

mount.sh:

代码语言:javascript
复制
#!/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>

由于安全性很差,所以方法不好,但是在某些用例中可能会有帮助。

让码头安装

代码语言:javascript
复制
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

让主机安装

代码语言:javascript
复制
mount -t cifs -o username=xx,password=xx, \               
  uid=dockeruid,forceuid, \
  gid=dockergid,forcegid, \                  
  file_mode=744,dir_mode=744 //IP/Path /mnt/whatever   

运行码头容器,然后与此用户:

代码语言:javascript
复制
services:
  name:
    user: "dockeruid:dockergid"
    volumes:
      - /mnt/whatever:/mnt/whatever
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71287782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档