
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Fail2ban 是一个用于阻止多次导致认证错误的主机的守护进程。LinuxServer.io提供的该Docker镜像支持在主机级别和Docker容器级别运行,具备定期更新、用户权限映射等特性。
!https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/fail2ban-logo.png
该镜像由LinuxServer.io团队维护,旨在提供一个易于部署和配置的fail2ban解决方案。通过监控应用日志文件,fail2ban能够检测并阻止IP地址,有效防止暴力破解等。镜像支持多种架构,可灵活应用于不同环境。
| 架构 | 支持情况 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64- |
| arm64 | ✅ | arm64v8- |
| armhf | ❌ |
首次运行时,容器会在/config目录下创建多个文件夹和文件。默认配置均处于禁用状态。详细配置说明可参考https://github.com/linuxserver/fail2ban-confs/blob/master/README.md%EF%BC%8C%E4%B9%9F%E5%8F%AF%E5%9C%A8%E5%AE%B9%E5%99%A8%E7%9A%84%60/config/fail2ban/README.md%60%E4%B8%AD%E6%9F%A5%E7%9C%8B%E3%80%82
所有jail配置都需要能够读取应用日志文件。建议将每个应用的日志文件夹作为卷挂载到容器(如文档中的可选卷所示),不推荐挂载单个日志文件。/remotelogs路径作为所有日志文件的父目录,每个日志文件应挂载到/remotelogs的子文件夹下,例如:/remotelogs/nginx/挂载包含nginx日志的文件夹。
yaml--- version: "2.1" services: fail2ban: image: lscr.io/linuxserver/fail2ban:latest container_name: fail2ban cap_add: - NET_ADMIN - NET_RAW network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - VERBOSITY=-vv #可选 volumes: - /path/to/appdata/config:/config - /var/log:/var/log:ro - /path/to/airsonic/log:/remotelogs/airsonic:ro #可选 - /path/to/apache2/log:/remotelogs/apache2:ro #可选 - /path/to/authelia/log:/remotelogs/authelia:ro #可选 - /path/to/emby/log:/remotelogs/emby:ro #可选 - /path/to/filebrowser/log:/remotelogs/filebrowser:ro #可选 - /path/to/homeassistant/log:/remotelogs/homeassistant:ro #可选 - /path/to/lighttpd/log:/remotelogs/lighttpd:ro #可选 - /path/to/nextcloud/log:/remotelogs/nextcloud:ro #可选 - /path/to/nginx/log:/remotelogs/nginx:ro #可选 - /path/to/nzbget/log:/remotelogs/nzbget:ro #可选 - /path/to/overseerr/log:/remotelogs/overseerr:ro #可选 - /path/to/prowlarr/log:/remotelogs/prowlarr:ro #可选 - /path/to/radarr/log:/remotelogs/radarr:ro #可选 - /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro #可选 - /path/to/sonarr/log:/remotelogs/sonarr:ro #可选 - /path/to/unificontroller/log:/remotelogs/unificontroller:ro #可选 - /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro #可选 restart: unless-stopped
bashdocker run -d \ --name=fail2ban \ --net=host \ --cap-add=NET_ADMIN \ --cap-add=NET_RAW \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -e VERBOSITY=-vv `#可选` \ -v /path/to/appdata/config:/config \ -v /var/log:/var/log:ro \ -v /path/to/airsonic/log:/remotelogs/airsonic:ro `#可选` \ -v /path/to/apache2/log:/remotelogs/apache2:ro `#可选` \ -v /path/to/authelia/log:/remotelogs/authelia:ro `#可选` \ -v /path/to/emby/log:/remotelogs/emby:ro `#可选` \ -v /path/to/filebrowser/log:/remotelogs/filebrowser:ro `#可选` \ -v /path/to/homeassistant/log:/remotelogs/homeassistant:ro `#可选` \ -v /path/to/lighttpd/log:/remotelogs/lighttpd:ro `#可选` \ -v /path/to/nextcloud/log:/remotelogs/nextcloud:ro `#可选` \ -v /path/to/nginx/log:/remotelogs/nginx:ro `#可选` \ -v /path/to/nzbget/log:/remotelogs/nzbget:ro `#可选` \ -v /path/to/overseerr/log:/remotelogs/overseerr:ro `#可选` \ -v /path/to/prowlarr/log:/remotelogs/prowlarr:ro `#可选` \ -v /path/to/radarr/log:/remotelogs/radarr:ro `#可选` \ -v /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro `#可选` \ -v /path/to/sonarr/log:/remotelogs/sonarr:ro `#可选` \ -v /path/to/unificontroller/log:/remotelogs/unificontroller:ro `#可选` \ -v /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro `#可选` \ --restart unless-stopped \ lscr.io/linuxserver/fail2ban:latest
| 参数 | 功能 |
|---|---|
--net=host | 共享主机网络给容器 |
-e PUID=1000 | 用户ID - 详见下方说明 |
-e PGID=1000 | 组ID - 详见下方说明 |
-e TZ=Etc/UTC | 指定时区,参考时区列表 |
-e VERBOSITY=-vv | 设置容器日志详细程度,有效值为-v、-vv、-vvv、-vvvv,或留空/不设置 |
-v /config | 包含所有相关配置文件 |
-v /var/log:ro | 主机日志,以只读方式挂载 |
-v /remotelogs/airsonic:ro | 可选,airsonic日志文件夹,只读挂载 |
-v /remotelogs/apache2:ro | 可选,apache2日志文件夹,只读挂载 |
-v /remotelogs/authelia:ro | 可选,authelia日志文件夹,只读挂载 |
-v /remotelogs/emby:ro | 可选,emby日志文件夹,只读挂载 |
-v /remotelogs/filebrowser:ro | 可选,filebrowser日志文件夹,只读挂载 |
-v /remotelogs/homeassistant:ro | 可选,homeassistant日志文件夹,只读挂载 |
-v /remotelogs/lighttpd:ro | 可选,lighttpd日志文件夹,只读挂载 |
-v /remotelogs/nextcloud:ro | 可选,nextcloud日志文件夹,只读挂载 |
-v /remotelogs/nginx:ro | 可选,nginx日志文件夹,只读挂载 |
-v /remotelogs/nzbget:ro | 可选,nzbget日志文件夹,只读挂载 |
-v /remotelogs/overseerr:ro | 可选,overseerr日志文件夹,只读挂载 |
-v /remotelogs/prowlarr:ro | 可选,***日志文件夹,只读挂载 |
-v /remotelogs/radarr:ro | 可选,radarr日志文件夹,只读挂载 |
-v /remotelogs/sabnzbd:ro | 可选,sabnzbd日志文件夹,只读挂载 |
-v /remotelogs/sonarr:ro | 可选,sonarr日志文件夹,只读挂载 |
-v /remotelogs/unificontroller:ro | 可选,unificontroller日志文件夹,只读挂载 |
-v /remotelogs/vaultwarden:ro | 可选,vaultwarden日志文件夹,只读挂载 |
此镜像使用cap_add或sysctl以正常工作。某些版本的Portainer可能未正确实现这些功能,因此通过Portainer部署可能无法正常运行。
可通过特殊前缀FILE__从文件设置环境变量,例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
这将根据/run/secrets/mysecretvariable文件内容设置MYVAR环境变量。
可通过可选的-e UMASK=022设置覆盖容器内服务的默认umask。umask通过减法设置权限,而非加法,详情请参考umask说明。
使用卷挂载时,主机OS与容器间可能出现权限问题。通过指定PUID(用户ID)和PGID(组ID)可避免此问题。确保主机上的卷目录由指定用户拥有。使用id your_user命令查看当前用户的PUID和PGID:
bashid your_user
示例输出:
textuid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
可通过https://github.com/linuxserver/docker-mods%E5%A2%9E%E5%BC%BA%E5%AE%B9%E5%99%A8%E5%8A%9F%E8%83%BD%E3%80%82%E7%9B%B8%E5%85%B3Mods%E5%8F%AF%E9%80%9A%E8%BF%87fail2ban Mods和通用Mods查看。
容器运行时的Shell访问:
bashdocker exec -it fail2ban /bin/bash
实时监控容器日志:
bashdocker logs -f fail2ban
容器版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' fail2ban
镜像版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/fail2ban:latest
更新镜像:
bashdocker-compose pull
bashdocker-compose pull fail2ban
更新容器:
bashdocker-compose up -d
bashdocker-compose up -d fail2ban
清理旧镜像:
bashdocker image prune
更新镜像:
bashdocker pull lscr.io/linuxserver/fail2ban:latest
停止运行中的容器:
bashdocker stop fail2ban
删除容器:
bashdocker rm fail2ban
使用相同参数重新创建容器(若正确映射到主机文件夹,/config和设置将保留)
bashdocker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --run-once fail2ban
警告:不推荐使用Watchtower作为自动更新容器的解决方案,建议使用Docker Compose进行管理。
如需本地修改镜像:
bashgit clone https://github.com/linuxserver/docker-fail2ban.git cd docker-fail2ban docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/fail2ban:latest .
在x86_64硬件上构建ARM变体:
bashdocker run --rm --privileged multiarch/qemu-user-static:register --reset
然后使用-f Dockerfile.aarch64指定Dockerfile。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务