
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!size!https://raw.githubusercontent.com/11notes/static/refs/heads/main/img/markdown/transparent5x2px.png!pulls!https://raw.githubusercontent.com/11notes/static/refs/heads/main/img/markdown/transparent5x2px.png%5B](https://github.com/11notes/docker-vernemq/issues)!https://raw.githubusercontent.com/11notes/static/refs/heads/main/img/markdown/transparent5x2px.png!swiss_made
默认以rootless方式安全运行VerneMQ!
https://github.com/vernemq/vernemq%EF%BC%88%E7%94%B1https://github.com/vernemq/%E5%BC%80%E5%8F%91%EF%BC%89%E6%98%AF%E4%B8%80%E6%AC%BE%E9%AB%98%E6%80%A7%E8%83%BD%E3%80%81%E5%88%86%E5%B8%83%E5%BC%8F%E7%9A%84MQTT%E6%B6%88%E6%81%AF%E4%BB%A3%E7%90%86%E3%80%82%E5%AE%83%E5%8F%AF%E5%9C%A8%E9%80%9A%E7%94%A8%E7%A1%AC%E4%BB%B6%E4%B8%8A%E8%BF%9B%E8%A1%8C%E6%B0%B4%E5%B9%B3%E5%92%8C%E5%9E%82%E7%9B%B4%E6%89%A9%E5%B1%95%EF%BC%8C%E6%94%AF%E6%8C%81%E5%A4%A7%E9%87%8F%E5%B9%B6%E5%8F%91%E5%8F%91%E5%B8%83%E8%80%85%E5%92%8C%E6%B6%88%E8%B4%B9%E8%80%85%EF%BC%8C%E5%90%8C%E6%97%B6%E4%BF%9D%E6%8C%81%E4%BD%8E%E5%BB%B6%E8%BF%9F%E5%92%8C%E5%AE%B9%E9%94%99%E8%83%BD%E5%8A%9B%E3%80%82VerneMQ%E6%98%AFIoT%E5%B9%B3%E5%8F%B0%E6%88%96%E6%99%BA%E8%83%BD%E4%BA%A7%E5%93%81%E7%9A%84%E5%8F%AF%E9%9D%A0%E6%B6%88%E6%81%AF%E4%B8%AD%E5%BF%83%E3%80%82
!https://github.com/11notes/docker-vernemq/blob/master/img/status.png?raw=true
此镜像能做什么? 运行目前最优秀、最现代的MQTT代理之一,默认已安全配置。它包含修改后的Redis认证后端,可将未认证客户端写入Redis数据库15分钟,并通过FQDN形式的挂载点支持多租户。
为什么选择此镜像而非其他现有镜像? 很好的问题!因为...
如果您重视安全性、简洁性和极致优化,此镜像可能适合您。
以下是此镜像与最常用或原始镜像的对比。
| 镜像 | 磁盘大小 | 默认初始用户 | https://github.com/11notes/RTFM/blob/main/linux/container/image/distroless.md | 支持的架构 |
|---|---|---|---|---|
| 11notes/vernemq | 152MB | 1000:1000 | ❌ | amd64, arm64, armv7 |
yamlname: "mqtts" x-lockdown: &lockdown # 防止对镜像本身的写访问 read_only: true # 防止容器内任何进程获取更多权限 security_opt: - "no-new-privileges=true" services: redis: # 有关此镜像的更多信息,请查看: # https://github.com/11notes/docker-redis image: "11notes/redis:8.2.2" <<: *lockdown environment: REDIS_PASSWORD: "${REDIS_PASSWORD}" TZ: "Europe/Zurich" networks: backend: volumes: - "redis.etc:/redis/etc" - "redis.var:/redis/var" tmpfs: - "/run:uid=1000,gid=1000" restart: "always" cli: # 有关此镜像的更多信息,请查看: # https://github.com/11notes/docker-redis depends_on: redis: condition: "service_healthy" restart: true image: "11notes/redis:8.2.2" <<: *lockdown environment: REDIS_HOST: "redis" REDIS_PASSWORD: "${REDIS_PASSWORD}" TZ: "Europe/Zurich" entrypoint: ["/usr/local/bin/redis", "--cmd"] command: - SET client:mqttui@domain.com:mqttui {"mountpoint":"domain.com","passhash":"$2a$12$NZTnKE8a5e8/ey9Li6xwSeF92I0j1Us96jMl2zCESRlapx88u6Wxq","subscribe_acl":[{"pattern":"#"}],"publish_acl":[{"allowed_retain":true,"pattern":"#"}]} NX networks: backend: vernemq: depends_on: redis: condition: "service_healthy" restart: true image: "11notes/vernemq:2.1.1" <<: *lockdown environment: TZ: "Europe/Zurich" ports: - "3000:3000/tcp" - "8883:8883/tcp" networks: frontend: backend: volumes: - "vernemq.etc:/vernemq/etc" - "vernemq.var:/vernemq/var" # ╔═════════════════════════════════════════════════════╗ # ║ 演示容器 - 请勿在生产环境中使用! ║ # ╚═════════════════════════════════════════════════════╝ # 用于提供Redis数据库的UI界面 redis-insight: depends_on: redis: condition: "service_healthy" restart: true image: "redis/redisinsight" environment: RI_REDIS_HOST0: "redis" RI_REDIS_PASSWORD0: "${REDIS_PASSWORD}" TZ: "Europe/Zurich" ports: - "3010:5540/tcp" networks: backend: frontend: # ╔═════════════════════════════════════════════════════╗ # ║ 演示容器 - 请勿在生产环境中使用! ║ # ╚═════════════════════════════════════════════════════╝ # Web UI用于可视化发送的MQTT消息 mqtt-web-client: depends_on: vernemq: condition: "service_healthy" restart: true image: "terdia07/mqttui" entrypoint: ["/bin/sh","-c"] command: - | sed -i 's/mqttui_{os.getpid()}/{os.getenv('\''MQTT_CLIENT_ID'\'')}/' ./app.py exec gunicorn --worker-class eventlet -w 1 -b "0.0.0.0:5000" app:app environment: TZ: Europe/Zurich MQTT_BROKER: vernemq MQTT_PORT: 1883 MQTT_USERNAME: mqttui@domain.com MQTT_PASSWORD: vernemq MQTT_CLIENT_ID: mqttui ports: - "3020:5000/tcp" networks: frontend: backend: restart: always volumes: vernemq.etc: vernemq.var: redis.etc: redis.var: redis-insight.var: networks: frontend: backend: internal: true
要了解如何更改此容器镜像的默认UID/GID,请参考https://github.com/11notes/RTFM/blob/main/linux/container/image/11notes/how-to.changeUIDGID.md#change-uidgid-the-correct-way%E3%80%82
| 参数 | 值 | 描述 |
|---|---|---|
user | docker | 用户名 |
uid | 1000 | 用户标识符 |
gid | 1000 | 组标识符 |
home | /vernemq | docker用户的主目录 |
| 参数 | 说明 | 默认值 |
|---|---|---|
TZ | 时区 | |
DEBUG | 激活容器镜像和应用的调试选项(如可用) |
以下是镜像的主要标签。每个提交及其简写sha256值也有对应的标签。
我认为:latest标签是个坏习惯,不应使用。许多开发者在新版本中引入破坏性变更,这会给使用:latest的用户带来麻烦。如果不想将标签更改为最新的语义化版本,可以使用语义化版本的短版本。例如,不使用:2.1.1,可以使用:2或:2.1。由于这些标签会在每个新版本中更新为软件的最新版本,使用它们与使用:latest类似,但至少固定在主版本或次版本,理论上不会引入破坏性变更。
如果仍坚持使用此应用的最新版本,可使用:rolling标签,但请注意!您将立即获得应用的最新版本,无论是否存在破坏性变更或安全问题。风险自负!
docker pull 11notes/vernemq:2.1.1 docker pull ghcr.io/11notes/vernemq:2.1.1 docker pull quay.io/11notes/vernemq:2.1.1
此镜像默认支持Unraid。只需在任何标签后添加**-unraid**,镜像将以99:100而非1000:1000运行。
此镜像默认支持nobody用户。只需在任何标签后添加**-nobody**,镜像将以65534:65534而非1000:1000运行。
subscribe_acl和publish_acl限制MQTTS客户端访问特定主题,不要默认允许所有权限mqttui@domain.com提供了默认Redis ACL,请创建自己的Compose配置,不要盲目复制粘贴此镜像的使用风险由您自行承担。更新镜像版本前请务必备份。查看https://github.com/11notes/docker-vernemq/releases%E4%BA%86%E8%A7%A3%E7%A0%B4%E5%9D%8F%E6%80%A7%E5%8F%98%E6%9B%B4%E3%80%82%E5%A6%82%E4%BD%BF%E7%94%A8%E6%AD%A4%E9%95%9C%E5%83%8F%E9%81%87%E5%88%B0%E9%97%AE%E9%A2%98%EF%BC%8C%E8%AF%B7%E6%8F%90%E4%BA%A4https://github.com/11notes/docker-vernemq/issues%E3%80%82%E5%A6%82%E6%9C%89%E9%97%AE%E9%A2%98%E6%88%96%E5%BB%BA%E8%AE%AE%EF%BC%8C%E8%AF%B7%E5%88%9B%E5%BB%BA%E6%96%B0%E7%9A%84https://github.com/11notes/docker-vernemq/discussions%E8%80%8C%E9%9D%9Eissue%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8https://github.com/11notes?tab=repositories%E4%B8%8A%E6%89%BE%E5%88%B0%E6%88%91%E7%9A%84%E6%89%80%E6%9C%89%E5%85%B6%E4%BB%96%E4%BB%93%E5%BA%93%E3%80%82
创建于 12.01.2026, 22:12:57 (CET)
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务