
!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 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务