
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Samba Docker容器
dperson/samba的直接替代方案,可选支持https://github.com/imker25/samba_exporter/
自1992年以来,Samba为所有使用SMB/CIFS协议的客户端(如各种版本的DOS和Windows、OS/2、Linux等)提供安全、稳定且快速的文件和打印服务。
该镜像提供两个变体:
logicer16/samba:latest:https://github.com/dperson/samba的修改版本,增加了对自定义配置的支持。logicer16/samba:exporter:与logicer16/samba:latest相同,额外运行https://github.com/imker25/samba_exporter/,端口为`9922`。[!WARNING]
目前,logicer16/samba:exporter版本被认为不稳定。不保证在合理时间内解决问题。欢迎建议和PR。
默认情况下无共享配置,可添加额外共享。
基本运行:
sudo docker run -it -p 139:139 -p 445:445 -d logicer16/samba -p
或设置本地存储:
sudo docker run -it --name samba -p 139:139 -p 445:445 \ -v /path/to/directory:/mount \ -d logicer16/samba -p
或运行带exporter的版本:
sudo docker run -it -p 139:139 -p 445:445 -p 9922:9922 -d \ logicer16/samba:exporter -p
命令行帮助:
sudo docker run -it --rm logicer16/samba -h Usage: samba.sh [-opt] [command] 选项('[]'中的为可选,'<>’中的为必填): -h 显示帮助 -c "<from:to>" 设置文件/目录名的字符映射 必填参数:"<from:to>" 字符映射,用','分隔 -G "<section;parameter>" 为smb.conf提供通用节选项 必填参数:"<section>" - 例如:"share" 必填参数:"<parameter>" - 例如:"log level = 2" -g "<parameter>" 为smb.conf提供全局选项 必填参数:"<parameter>" - 例如:"log level = 2" -i "<path>" 导入smbpassword 必填参数:"<path>" - 容器内的完整文件路径 -n 启动'nmbd'守护进程以广播共享 -p 设置共享的所有权和权限 -r 禁用共享的回收站 -R "<group> <user> [...users]" 将用户添加到组 -S 禁用SMB2最低版本 -s "<name;/path>[;browse;readonly;guest;users;admins;writelist;comment]" 配置共享 必填参数:"<name>;</path>" <name> 是客户端看到的共享名 <path> 共享路径 注意:默认值留空即可 [browsable] 默认:'yes'或'no' [readonly] 默认:'yes'或'no' [guest] 允许访客默认:'yes'或'no' 注意:以下用户列表用','分隔 [users] 允许访问的用户默认:'all'或用户列表 [admins] 管理员用户默认:'none'或管理员列表 [writelist] 可写入只读共享的用户列表 [comment] 共享描述 -u "<username;password>[;ID;group;GID]" 添加用户 必填参数:"<username>;<passwd>" <username> 用户名 <password> 密码 [ID] 用户ID [group] 用户组 [GID] 组ID -w "<workgroup>" 配置Samba使用的工作组(域) 必填参数:"<workgroup>" <workgroup> 工作组名称 -W 允许访问宽符号链接 -I 在smb.conf末尾添加include选项 必填参数:"<include file path>" <include file path> 容器内的路径,例如绑定挂载的文件 'command'(如果提供且有效)将替代samba运行
CHARMAP - 同上,配置字符映射GENERIC - 同上,配置通用节选项(*见下方提示)GLOBAL - 同上,配置全局选项(*见下方提示)IMPORT - 同上,导入smbpassword文件NMBD - 同上,启用nmbdPERMISSIONS - 同上,设置所有共享的文件权限RECYCLE - 同上,禁用回收站SHARE - 同上,配置共享(*见下方提示)SMB - 同上,禁用SMB2最低版本TZ - 设置时区,例如EST5EDTUSER - 同上,添加用户(*见下方提示)WIDELINKS - 同上,允许访问宽符号链接WORKGROUP - 同上,设置工作组USERID - 设置Samba服务器默认用户(smbuser)的UIDGROUPID - 设置Samba服务器默认用户(smbuser)的GIDINCLUDE - 同上,添加smb.conf的includeSAMBA_SH_ARGS - 附加到docker命令提供的参数的额外参数SAMBA_EXPORTER_STATUSD_ARGS - https://imker25.github.io/samba_exporter/manpages/samba_statusd.1.html#OPTIONS。仅在`exporter`标签可用。SAMBA_EXPORTER_ARGS - https://imker25.github.io/samba_exporter/manpages/samba_exporter.1.html#OPTIONS。仅在`exporter`标签可用。SMB_CONF_PATH - 见smb.conf。默认值为/etc/docker-samba/smb.conf[!NOTE] 如果启用nmbd(通过
-n或NMBD环境变量),还需要暴露端口137和138:-p 137:137/udp -p 138:138/udp。
[!NOTE] 有报告称,
-n和NMBD仅在容器使用主机网络栈时才有效。
[!TIP] *可选支持以相同名称开头的额外变量,例如
SHARE也适用于SHARE2、SHARE3...SHAREx等。
smb.conf如果希望使用默认smb.conf以外的自定义配置文件,可通过SMB_CONF_PATH指定绑定挂载的自定义smb.conf路径。通过环境变量或CLI选项提供的任何额外配置将自动应用于提供的配置。
任何命令可在创建容器时通过docker run运行,或之后通过docker exec -it samba samba.sh运行(从docker 1.3版本开始)。
sudo docker run -it -e TZ=EST5EDT -p 139:139 -p 445:445 -d logicer16/samba -p
sudo docker run -it -p 139:139 -p 445:445 -v config/smb.conf:/etc/docker-samba/smb.conf -d logicer16/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"
smb.confsudo docker run -it -p 139:139 -p 445:445 -d logicer16/samba -p \ -u "example1;badpass"
change_to_user_internal: chdir_current_service() failed!在容器选项末尾添加-p选项,或设置PERMISSIONS环境变量:
sudo docker run -it --name samba -p 139:139 -p 445:445 \ -v /path/to/directory:/mount \ -d logicer16/samba -p
如果无法更改文件权限,可将环境变量USERID和GROUPID设置为文件所有者的ID。
在docker run命令中添加-m 512m选项,或在docker_compose.yml中设置mem_limit::
sudo docker run -it --name samba -m 512m -p 139:139 -p 445:445 \ -v /path/to/directory:/mount \ -d logicer16/samba -p
smbclient命令行工具连接。默认情况下,samba仍尝试使用已弃用且有安全问题的SMB1。此容器默认使用SMB2,但由于未知原因,即使支持也默认禁用,因此运行命令时使用smbclient -m SMB3,然后添加其他选项。如果对该镜像有任何问题或疑问,请通过https://github.com/logicer16/samba/issues联系。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 logicer16/samba 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: