挂载smb(cifs)、nfs共享目录

命令行操作

挂载smb共享目录

  1. 安装smb工具
sudo apt install cifs-utils -y
  1. 创建挂载点,用于挂载smb共享目录
mkdir -p /path/to/smb_dir/
  1. 创建凭证文件
sudo nano /path/to/.examplecredentials

Docker配置

挂载smb/cifs​,nfs​主要用于将数据持久化存储于共享目录(比如:nas​),用于数据同步、共享,同时可以借由nas生态来实现数据备份,提升数据安全

可以在docker compose file​中进行如下设置:

---
services:
  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
    volumes:
      - smb_dir:/config
      - nfs_dir:/books
    ports:
      - 8083:8083
    restart: unless-stopped

  smb_dir:
    driver: local
    driver_opts:
      type: cifs  
      device: //your smb server ip
      # 配置共享目录权限,需要与容器权限保持一致:uid=1000,gid=1000,dir_mode=0755,file_mode=0755
      # smb版本:vers=1.0
      # 设置使用缓存:cache=strict
      # 设置使用编码:iocharset=utf8
      # 不向服务器发送对 byte range lock 的请求,已知容器中sqlite数据库必须添加该选项:nobrl
      o: "addr=nas-ds120j,username=yourUsername,password=yourPassword,uid=1000,gid=1000,dir_mode=0755,file_mode=0755,vers=1.0,cache=strict,iocharset=utf8,nobrl"
  nfs_dir:
    driver: local
    driver_opts:
      type: nfs
      device: :/path/to/nfs/path
      o: "addr=nfs_ip,rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14,nfsvers=4"

注意⚠️

lxc容器无法进行挂载

参考资料

Cause 3: Using a Network File System

unix - SqLite3 NFS 挂载问题与锁定 - 我可以使用类似 CIFS nobrl 的东西吗?