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%E7%9A%84%E4%BF%AE%E6%94%B9%E7%89%88%E6%9C%AC%EF%BC%8C%E5%A2%9E%E5%8A%A0%E4%BA%86%E5%AF%B9%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE%E7%9A%84%E6%94%AF%E6%8C%81%E3%80%82logicer16/samba:exporter:与logicer16/samba:latest相同,额外运行https://github.com/imker25/samba_exporter/%EF%BC%8C%E7%AB%AF%E5%8F%A3%E4%B8%BA%609922%60%E3%80%82[!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%E3%80%82%E4%BB%85%E5%9C%A8%60exporter%60%E6%A0%87%E7%AD%BE%E5%8F%AF%E7%94%A8%E3%80%82SAMBA_EXPORTER_ARGS - https://imker25.github.io/samba_exporter/manpages/samba_exporter.1.html#OPTIONS%E3%80%82%E4%BB%85%E5%9C%A8%60exporter%60%E6%A0%87%E7%AD%BE%E5%8F%AF%E7%94%A8%E3%80%82SMB_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%E8%81%94%E7%B3%BB%E3%80%82
以下是 logicer16/samba 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务