本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Samba Docker容器
dperson/samba的直接替代方案,可选支持imker25/samba_exporter
自1992年以来,Samba为所有使用SMB/CIFS协议的客户端(如各种版本的DOS和Windows、OS/2、Linux等)提供安全、稳定且快速的文件和打印服务。
该镜像提供两个变体:
logicer16/samba:latest:dperson/samba的修改版本,增加了对自定义配置的支持。logicer16/samba:exporter:与logicer16/samba:latest相同,额外运行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 - samba_statusd的选项。仅在exporter标签可用。SAMBA_EXPORTER_ARGS - samba_exporter的选项。仅在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,然后添加其他选项。如果对该镜像有任何问题或疑问,请通过GitHub issue联系。



免费版仅支持 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