
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!https://raw.githubusercontent.com/dperson/samba/master/logo.jpg
Samba是一款自1992年起提供SMB/CIFS协议文件和打印服务的开源软件,支持DOS、Windows、OS/2、Linux等多种客户端。本Docker镜像封装了Samba服务,可快速部署安全、稳定的文件共享服务,适用于家庭网络、办公环境等场景下的跨平台文件共享需求。
默认无共享配置,需手动添加。
简单启动Samba实例
bashsudo docker run -it -p 139:139 -p 445:445 -d dperson/samba -p
挂载本地存储启动
bashsudo docker run -it --name samba -p 139:139 -p 445:445 \ -v /path/to/directory:/mount \ -d dperson/samba -p
通过命令行参数或环境变量进行配置,可执行以下命令查看帮助:
bashsudo docker run -it --rm dperson/samba -h
命令行选项
| 选项 | 说明 |
|---|---|
-h | 显示帮助信息 |
-c "<from:to>" | 设置文件/目录名的字符映射,多个映射用逗号分隔 |
-G "<section;parameter>" | 为smb.conf添加通用节选项,需指定节名和参数 |
-g "<parameter>" | 为smb.conf添加全局选项 |
-i "<path>" | 导入smbpassword文件,需指定容器内完整路径 |
-n | 启动nmbd守护进程以广播共享 |
-p | 设置共享的所有权和权限 |
-r | 禁用共享的回收站功能 |
-S | 禁用SMB2最低版本要求 |
-s "<name;/path>[;browse;readonly;guest;users;admins;writelist;comment]" | 配置共享,必填<name>;/path,其他参数可选(默认值留空):- browsable:是否可浏览(默认yes)- readonly:是否只读(默认yes)- guest:是否允许访客(默认yes)- users:允许访问的用户(默认all,多个用户用逗号分隔)- admins:管理员用户(默认none)- writelist:可写入只读共享的用户列表- comment:共享描述 |
-u "<username;password>[;ID;group;GID]" | 添加用户,必填<username>;<password>,可选ID、组、GID |
-w "<workgroup>" | 配置工作组(域) |
-W | 允许访问宽符号链接 |
-I "<include file path>" | 在smb.conf末尾添加包含选项,需指定容器内路径 |
环境变量
| 环境变量 | 说明 |
|---|---|
CHARMAP | 同-c选项 |
GENERIC | 同-G选项(支持GENERIC2、GENERIC3等扩展) |
GLOBAL | 同-g选项(支持GLOBAL2、GLOBAL3等扩展) |
IMPORT | 同-i选项 |
NMBD | 同-n选项,启用nmbd |
PERMISSIONS | 同-p选项 |
RECYCLE | 同-r选项 |
SHARE | 同-s选项(支持SHARE2、SHARE3等扩展) |
SMB | 同-S选项 |
TZ | 设置时区,如EST5EDT |
USER | 同-u选项(支持USER2、USER3等扩展) |
WIDELINKS | 同-W选项 |
WORKGROUP | 同-w选项 |
USERID | 设置samba默认用户(smbuser)的UID |
GROUPID | 设置samba默认用户(smbuser)的GID |
INCLUDE | 同-I选项 |
注意:若启用nmbd(通过
-n或NMBD环境变量),需额外暴露UDP端口:-p 137:137/udp -p 138:138/udp。有报告称nmbd仅在容器使用主机网络栈时正常工作。
设置时区
bashsudo docker run -it -e TZ=EST5EDT -p 139:139 -p 445:445 -d dperson/samba -p
创建用户和共享
bashsudo docker run -it -p 139:139 -p 445:445 -d dperson/samba -p \ -u "example1;badpass" \ -u "example2;badpass" \ -s "public;/share" \ -s "users;/srv;no;no;no;example1,example2" \ -s "example1 private share;/example1;no;no;no;example1" \ -s "example2 private share;/example2;no;no;no;example2"
客户端提示"Access is denied"或日志显示"change_to_user_internal: chdir_current_service() failed!"
在容器选项末尾添加-p或设置PERMISSIONS环境变量:
bashsudo docker run -it --name samba -p 139:139 -p 445:445 \ -v /path/to/directory:/mount \ -d dperson/samba -p
若无法修改文件权限,可设置USERID和GROUPID环境变量为文件所有者的UID和GID。
Samba进程内存占用过高
通过-m 512m限制容器内存:
bashsudo docker run -it --name samba -m 512m -p 139:139 -p 445:445 \ -v /path/to/directory:/mount \ -d dperson/samba -p
使用smbclient连接失败
容器默认使用SMB2,需指定SMB3版本:
bashsmbclient -m SMB3 //server/share
如有任何问题或疑问,请通过https://github.com/dperson/samba/issues%E8%81%94%E7%B3%BB%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 dperson/samba 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: