Samba共享工具
通过docker安装samba
使用的是 dperson/samba 镜像
创建docker容器
bash
docker run -d \
--name my-samba \
-p 139:139 -p 445:445 \
-v /root/samba/data:/share \
dperson/samba:latest \
-s "public;/share;yes;no;yes;all"参数说明
使用 dperson/samba:latest镜像时,不需要手动编辑 smb.conf文件。该镜像的设计理念是通过 Docker 启动命令的参数来动态生成配置,这比手动挂载配置文件更灵活且不易出错。 以下是配置共享目录的两种核心方法:
使用 -s参数(推荐)
这是该镜像最核心的功能。你可以在 docker run命令中直接通过 -s参数定义共享,它会自动写入 smb.conf。 参数格式: -s "共享名称;共享路径;[是否可浏览;是否只读;是否允许访客;允许用户列表;管理员列表;可写列表;注释]" 示例:
bash
docker run -d \
--name my-samba \
-p 139:139 -p 445:445 \
-v /host/data:/share \ # 挂载宿主机目录
dperson/samba:latest \
-s "public;/share;yes;no;yes;all" \
-s "private;/private;no;no;no;user1,user2"参数解释:
- public:共享名,在网络上显示为 \IP\public。
- /share:容器内的路径(必须与 -v挂载的路径一致)。
- yes:允许浏览。
- no:非只读(即可写)。
- yes:允许访客(无需密码)。
- all:允许所有用户访问。
重要说明
- 挂载的目录必须要有访问权限, 在上面的 public 示例中,/share 目录必须有读写权限。否则,Samba 将无法创建新文件或文件夹,必须要将
/host/data目录的权限修改为777,对于访客模式,必须要将/host/data目录的权限修改为777,samba实际访问的用户是nobody,所以需要将目录的权限修改为777,否则会出现权限不足的问题。 解决的方法:
bash
chmod 777 /host/data或是将 /host/data 目录的拥有者修改为 nobody:nogroup
bash
chown nobody:nogroup /host/data