Docker 一键部署 Samba 文件共享

使用 dperson/samba 共享宿主机目录,配置登录账号和可读写的 SMB 共享。

通过 Samba 将 Docker 宿主机的 /samba 目录共享给 Windows、macOS 等 SMB 客户端,共享名称为 www。

一键部署

1
docker run -d --name samba --restart=unless-stopped -p 139:139 -p 445:445 -v /samba:/mount dperson/samba -u "www;www" -s "www;/mount;yes;no;no;all;none"

/samba 是宿主机目录,/mount 是对应的容器目录。需要共享其他位置时,只替换挂载参数中冒号左侧的 /samba 即可;宿主机的 TCP 139 和 445 端口需可供容器使用。

连接共享

客户端访问方式
Windows在文件资源管理器地址栏输入 \\IP\www
macOSFinder 中按 Command + K,输入 smb://IP/www

IP 替换为 Docker 宿主机地址。登录用户名为 www,密码为 www;需要其他账号或密码时,修改 -u "用户名;密码"。

共享参数说明

-s 的各字段以分号分隔,本例依次为:

字段值含义
共享名称www客户端访问的共享名
共享目录/mount容器内的共享路径
可浏览yes允许浏览该共享
只读no共享配置允许写入
访客访问no要求使用账号认证
允许的用户all不限定到某个用户名,允许通过认证的用户访问
管理员用户none不指定共享管理员用户

all 不会覆盖前面的访客设置,本例仍需登录。实际写入还取决于共享目录的文件系统权限;镜像提供的 -p 参数可自动设置共享目录的属主和权限,需要时加在 dperson/samba 后面,它会修改目录内文件的权限。

参考:dperson/samba 部署与参数说明。

延伸阅读

使用 Hugo 构建
主题 Stack 由 Jimmy 设计