本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

!logo
本镜像为Samba服务器的Docker化实现,基于dperson/samba进行更新维护。Samba是一款开源软件,自1992年起提供基于SMB/CIFS协议的文件和打印服务,支持DOS、Windows、OS/2、Linux等所有SMB/CIFS客户端,实现跨平台文件共享。
推荐从Docker Hub拉取预构建镜像:
docker pull adrianmusante/samba
4、4.21、latest(基于samba/Dockerfile构建)查看Docker Hub标签页面获取所有可用版本。
默认配置无共享目录,需通过参数或环境变量添加。
docker run -it -p 139:139 -p 445:445 -d adrianmusante/samba -p
docker run -it --name samba -p 139:139 -p 445:445 \ -v /本地目录路径:/容器挂载路径 \ -d adrianmusante/samba -p
启动容器时可通过命令行参数配置Samba服务。运行以下命令查看所有选项:
docker run -it --rm adrianmusante/samba -h
| 选项 | 描述 | 必需参数 | 示例 |
|---|---|---|---|
-h | 显示帮助信息 | 无 | -h |
-c "<from:to>" | 配置文件/目录名字符映射 | <from:to>(多个映射用逗号分隔) | -c "ä:a,ö:o" |
-G "<section;parameter>" | 添加smb.conf通用段配置 | <section>(段名)、<parameter>(配置项) | -G "share;log level = 2" |
-g "<parameter>" | 添加smb.conf全局配置 | <parameter>(配置项) | -g "workgroup = MYGROUP" |
-i "<path>" | 导入smbpassword文件 | <path>(容器内文件路径) | -i "/etc/samba/smbpasswd" |
-n | 启动nmbd守护进程(用于共享发现) | 无 | -n |
-p | 设置共享目录所有权和权限 | 无 | -p |
-r | 禁用共享回收站功能 | 无 | -r |
-S | 禁用SMB2最低版本要求 | 无 | -S |
-s "<name;/path>[;browse;readonly;guest;users;admins;writelist;comment]" | 配置共享目录 | <name>(共享名)、<path>(容器内路径);可选参数默认值:browse=yes, readonly=yes, guest=no, users=all, admins=none | -s "public;/share;yes;no;no;user1,user2;;user1;公共共享" |
-u "<username;password>[;ID;group;GID]" | 添加用户 | <username>、<password>;可选:ID(用户ID)、group(组名)、GID(组ID) | -u "user1;pass123;1001;users;100" |
-w "<workgroup>" | 配置工作组(域) | <workgroup>(工作组名) | -w "MYGROUP" |
-W | 允许访问跨文件系统符号链接 | 无 | -W |
-I "<path>" | 在smb.conf末尾添加include配置 | <path>(容器内配置文件路径) | -I "/etc/samba/extra.conf" |
通过环境变量配置容器,支持多实例(如SAMBA_SHARE、SAMBA_SHARE2)。
| 环境变量 | 描述 | 示例 |
|---|---|---|
PUID | 设置默认用户(smbuser)的UID | 1000 |
PGID | 设置默认用户(smbuser)的GID | 1000 |
TZ | 设置时区 | Asia/Shanghai |
SAMBA_DEBUG | 启用详细日志模式 | true(默认:false) |
SAMBA_LOG_LEVEL | 设置日志级别(0-10,越高越详细) | 3(默认:0;SAMBA_DEBUG=true时默认3) |
SAMBA_CHARMAP | 字符映射配置(同-c) | "ä:a,ö:o" |
SAMBA_GENERIC | 通用段配置(同-G) | "share;log level = 2" |
SAMBA_GLOBAL | 全局配置(同-g) | "workgroup = MYGROUP" |
SAMBA_IMPORT | 导入smbpassword文件(同-i) | "/etc/samba/smbpasswd" |
SAMBA_NMBD | 启用nmbd守护进程(同-n) | true |
SAMBA_PERMISSIONS | 设置共享权限(同-p) | true |
SAMBA_RECYCLE | 禁用回收站(同-r) | true |
SAMBA_SHARE | 配置共享目录(同-s) | "public;/share;yes;no;no" |
SAMBA_SMB | 禁用SMB2最低版本(同-S) | true |
SAMBA_USER | 添加用户(同-u) | "user1;pass123;1001" |
SAMBA_WIDELINKS | 允许跨文件系统符号链接(同-W) | true |
SAMBA_WORKGROUP | 工作组配置(同-w) | "MYGROUP" |
SAMBA_INCLUDE | 添加include配置(同-I) | "/etc/samba/extra.conf" |
注意:启用nmbd(
-n或SAMBA_NMBD=true)时,需额外映射UDP端口:-p 137:137/udp -p 138:138/udp。部分环境下nmbd仅在使用主机网络模式时正常工作。
创建用户alice和bob,配置公共共享和私有共享:
docker run -it --name samba -p 139:139 -p 445:445 \ -v /data/public:/share/public \ -v /data/alice:/share/alice \ -v /data/bob:/share/bob \ -d adrianmusante/samba -p \ -u "alice;AlicePass123" \ -u "bob;BobPass456" \ -s "public;/share/public;yes;no;yes;all;;alice,bob;公共文件共享" \ -s "alice_private;/share/alice;no;no;no;alice;;alice;Alice私有目录" \ -s "bob_private;/share/bob;no;no;no;bob;;bob;Bob私有目录" \ -w "MYHOME"
创建docker-compose.yml:
version: '3' services: samba: image: adrianmusante/samba container_name: samba restart: always ports: - "139:139" - "445:445" - "137:137/udp" - "138:138/udp" volumes: - ./public:/share/public - ./team:/share/team environment: - TZ=Asia/Shanghai - PUID=1000 - PGID=1000 - SAMBA_WORKGROUP=MYTEAM - SAMBA_NMBD=true - SAMBA_PERMISSIONS=true - SAMBA_USER="john;JohnPass789;1001;team;100" - SAMBA_USER2="jane;JanePass321;1002;team;100" - SAMBA_SHARE="public;/share/public;yes;no;yes;all;;john,jane;公共共享区" - SAMBA_SHARE2="team;/share/team;yes;no;no;john,jane;;john,jane;团队协作区" command: -p
启动服务:
docker-compose up -d
change_to_user_internal: chdir_current_service() failed!解决:添加-p参数或设置SAMBA_PERMISSIONS=true以自动配置权限:
docker run ... -d adrianmusante/samba -p
若无法修改文件权限,可设置PUID和PGID匹配宿主机文件所有者ID:
docker run ... -e PUID=1000 -e PGID=1000 ...
解决:限制容器内存使用:
docker run ... -m 512m ... # 限制最大内存为512MB
或在docker-compose中添加:
services: samba: ... deploy: resources: limits: memory: 512M
smbclient连接失败解决:默认禁用SMB1,需指定SMB3协议:
smbclient -m SMB3 //server_ip/share_name -U username
如遇问题或有疑问,请通过GitHub Issues提交反馈。



免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429