
servercontainers/samba新仓库地址: ghcr.io/servercontainers/samba
2023年3月,Docker通知将移除servercontainers和desktopcontainers组织,除非升级到专业计划。为避免***用户接管原组织名称并发布可能带有后门的容器,建议切换至新的GitHub仓库地址:ghcr.io/servercontainers。
基于Alpine Linux的Samba服务器容器,支持TimeMachine备份、zeroconf(Avahi)网络发现和WSD(Web Services for Devices,wsdd2)服务,适用于x86和ARM架构。主要用于搭建轻量级跨平台文件共享服务,支持Windows、macOS和Linux客户端,尤其适合家庭或小型办公环境。
bashdocker run -d \ --name samba \ --net=host \ -v /path/to/shares:/shares \ -e ACCOUNT_user1=password123 \ -e SAMBA_VOLUME_CONFIG_myshare="path = /shares/myshare; valid users = user1; read only = no" \ -e MODEL=TimeCapsule \ --cap-add=CAP_NET_ADMIN \ ghcr.io/servercontainers/samba:latest
yamlversion: '3' services: samba: image: ghcr.io/servercontainers/samba:latest container_name: samba network_mode: host # 如需Avahi/wsdd2发现,建议使用host网络 volumes: - /path/to/shares:/shares # 共享文件存储路径 environment: # 用户配置(用户名:密码/哈希) - ACCOUNT_user1=password123 - ACCOUNT_admin=:0:1001:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:8846F7EAEE8FB117AD06BDD830B7586C:[U ]:LCT-5FE1F7DF: # 哈希示例 # 用户UID指定 - UID_user1=1000 # 组配置 - GROUP_devops=1500 # 用户附加组 - GROUPS_admin=devops # 全局配置 - SAMBA_GLOBAL_CONFIG_workgroup=MYGROUP - SAMBA_GLOBAL_CONFIG_server_string=My Samba Server - SAMBA_GLOBAL_STANZA=log level = 2; max log size = 50 # 多行全局配置,用;分隔 # 共享卷配置(TimeMachine示例) - SAMBA_VOLUME_CONFIG_timemachine="path = /shares/timemachine/%U; valid users = %U; fruit:time machine = yes; fruit:time machine max size = 500G" # Avahi配置 - MODEL=MacPro7,1 - AVAHI_NAME=MySambaServer cap_add: - CAP_NET_ADMIN # wsdd2需要此权限 restart: unless-stopped
| 变量名 | 说明 | 可选性 | 默认值 | 示例值 |
|---|---|---|---|---|
| SAMBA_GLOBAL_STANZA | 多行全局配置,用;分隔(自动转为\n) | 可选 | 未设置 | log level = 2; max log size = 50 |
| SAMBA_GLOBAL_CONFIG_<唯一标识> | 单个全局配置项,键含空格用_SPACE_替换,含冒号用_COLON_替换 | 可选 | 未设置 | SAMBA_GLOBAL_CONFIG_mykey=workgroup = MYGROUP |
| SAMBA_CONF_SERVER_ROLE | Samba服务器角色 | 可选 | standalone server | member server |
| SAMBA_CONF_LOG_LEVEL | 日志级别 | 可选 | 1 | 3 |
| SAMBA_CONF_WORKGROUP | 工作组名称 | 可选 | WORKGROUP | MYGROUP |
| SAMBA_CONF_SERVER_STRING | 服务器描述信息 | 可选 | Samba Server | "Office File Server" |
| SAMBA_CONF_MAP_TO_GUEST | ***用户映射策略 | 可选 | Bad User | Never |
| 变量名 | 说明 | 可选性 | 默认值 | 示例值 |
|---|---|---|---|---|
| ACCOUNT_<用户名> | 创建用户,值为明文密码(不可以:<用户名>:[0-9]*:开头)或Samba哈希 | 必选 | 未设置 | ACCOUNT_user1=password123 |
| UID_<用户名> | 指定用户UID,需与ACCOUNT_<用户名>对应 | 可选 | 自动分配 | UID_user1=1000 |
| GROUP_<组名> | 创建组,值为GID | 可选 | 未设置 | GROUP_devops=1500 |
| GROUPS_<用户名> | 为用户添加附加组,用,分隔,需与GROUP_<组名>对应 | 可选 | 未设置 | GROUPS_user1=devops,users |
| 变量名 | 说明 | 可选性 | 默认值 | 示例值 |
|---|---|---|---|---|
| MODEL | Avahi服务设备型号 | 可选 | TimeCapsule | MacPro7,1 |
| AVAHI_NAME | Avahi服务名称 | 可选 | 容器 hostname | MySambaServer |
| AVAHI_DISABLE | 禁用Avahi服务(设任意值即禁用) | 可选 | 未设置 | 1 |
| 变量名 | 说明 | 可选性 | 默认值 | 示例值 |
|---|---|---|---|---|
| WSDD2_DISABLE | 禁用wsdd2服务(设任意值即禁用) | 可选 | 未设置 | 1 |
| WSDD2_PARAMETERS | wsdd2启动参数 | 可选 | 未设置 | -l |
| 变量名 | 说明 | 可选性 | 默认值 | 示例值 |
|---|---|---|---|---|
| SAMBA_VOLUME_CONFIG_<唯一标识> | 共享卷配置,多行用;分隔;路径以%U结尾时启用多用户隔离(如TimeMachine) | 可选 | 未设置 | path = /shares/timemachine/%U; fruit:time machine = yes; valid users = %U |
| 挂载路径 | 说明 | 必要性 |
|---|---|---|
| /shares | 共享文件存储目录,需提前创建并授权 | 建议 |
| /external/avahi | 外部Avahi服务目录(覆盖容器内置配置) | 可选 |
| 镜像标签格式 | 说明 |
|---|---|
| latest a<alpine版本>-s<samba版本> | 完整版本:含smbd、Avahi、wsdd2,可通过环境变量禁用可选服务(如AVAHI_DISABLE) |
| smbd-only-latest smbd-only-a<...>-s<...> | 仅含smbd和基础脚本,无Avahi/wsdd2 |
| smbd-avahi-latest smbd-avahi-a<...>-s<...> | 含smbd、Avahi和脚本,无wsdd2 |
| smbd-wsdd2-latest smbd-wsdd2-a<...>-s<...> | 含smbd、wsdd2和脚本,无Avahi |
标签中a<alpine版本>-s<samba版本>格式(如a3.15.0-s4.15.2)可用于固定版本,便于回滚或版本控制。
build.sh脚本构建x86_64/arm64/arm镜像,指定DOCKER_REGISTRY环境变量可自定义仓库./build.sh release生成latest标签generate-variants.sh生成自定义变体配置并手动构建所有镜像标签格式为a<alpine版本>-s<samba版本>,如a3.15.0-s4.15.2,便于追溯基础镜像和Samba版本。
%U结尾(如/shares/timemachine/%U)时,每个用户将获得独立子目录--net=host网络模式或正确端口映射(UDP 5353)以确保macOS发现fruit:time machine max size = 500G限制单用户TimeMachine容量CAP_NET_ADMIN权限(--cap-add=CAP_NET_ADMIN)host网络模式下,通过hostname参数指定容器主机名(避免随机生成的名称影响发现)server role%U)




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务