本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
从v5.9.0开始,EMQX已将先前开源版和企业版的所有功能统一到单一强大产品中,并采用商业源代码许可证(BSL)1.1。
如果您想了解我们做出此变更的原因,请阅读这篇博客文章;如果您想了解有关新许可证的更多信息,请阅读EMQX许可常见问题。
因此,我们停止发布emqx Docker官方镜像。EMQX v5.9.0+将仅在emqx/emqx和emqx/emqx-enterprise Docker Hub仓库中提供。
维护者:
EMQ Technologies
获取帮助:
Discussions 或 ***
Dockerfile链接5.7.2, 5.7
5.8.8, 5.8, 5, latest
文件问题的位置:
[***]
支持的架构:(更多信息)
amd64, arm64v8
已发布镜像制品详情:
repo-info仓库的repos/emqx/目录 (历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images仓库的library/emqx标签
official-images仓库的library/emqx文件 (历史记录)
此描述的来源:
docs仓库的emqx/目录 (历史记录)
EMQX是世界上最具可扩展性的开源MQTT代理,具有高性能,可在1个集群中连接1亿+ IoT设备,同时保持1M消息/秒的吞吐量和亚毫秒级延迟。
EMQX支持多种开放标准协议,如MQTT、HTTP、QUIC和WebSocket。它100%符合MQTT 5.0和3.x标准,并通过MQTT over TLS/SSL和各种认证机制确保双向通信安全。
借助内置强大的基于SQL的规则引擎,EMQX可以实时提取、过滤、丰富和转换IoT数据。此外,它通过无主分布式架构确保高可用性和水平可扩展性,并提供对运维友好的用户体验和出色的可观测性。
EMQX在50多个国家和地区拥有超过20K+企业用户,连接全球1亿+ IoT设备,受到400多家客户在IoT、IIoT、联网车辆等关键任务场景中的信任,包括70多家财富500强公司,如HPE、VMware、Verifone、上汽大众和爱立信。
!logo
在该docker镜像下执行一些命令
$ docker run -d --name emqx arm64v8/emqx:${tag}
例如
$ docker run -d --name emqx -p 18083:18083 -p 1883:1883 arm64v8/emqx:latest
EMQX代理在docker容器中以Linux用户emqx运行。
etc/emqx.conf中的所有EMQX配置都可以通过环境变量进行配置。
示例:
EMQX_DASHBOARD__DEFAULT_PASSWORD <--> dashboard.default_password EMQX_NODE__COOKIE <--> node.cookie EMQX_LISTENERS__SSL__default__ENABLE <--> listeners.ssl.default.enable
注意:此处使用小写的'default'并非拼写错误。它用于演示小写环境变量是等效的。
EMQX___替换为.例如,将MQTT TCP端口设置为1883
$ docker run -d --name emqx -e EMQX_DASHBOARD__DEFAULT_PASSWORD=mysecret -p 18083:18083 -p 1883:1883 arm64v8/emqx:latest
请在官方文档中阅读更多关于EMQX配置的信息
环境变量EMQX_NODE__NAME允许您指定EMQX节点名称,默认为<container_name>@<container_ip>。
如果未指定,EMQX会根据运行环境或用于节点发现的其他环境变量确定其节点名称。
EMQX支持多种集群方式,详情请参见我们的文档。
让我们通过Docker Compose创建一个静态节点列表集群。
compose.yaml:services: emqx1: image: arm64v8/emqx:latest environment: - "EMQX_NODE__NAME=***" - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" - "EMQX_CLUSTER__STATIC__SEEDS=[***, ***]" networks: emqx-bridge: aliases: - node1.emqx.io emqx2: image: arm64v8/emqx:latest environment: - "EMQX_NODE__NAME=***" - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static" - "EMQX_CLUSTER__STATIC__SEEDS=[***, ***]" networks: emqx-bridge: aliases: - node2.emqx.io networks: emqx-bridge: driver: bridge
docker compose -p my_emqx up -d
$ docker exec -it my_emqx_emqx1_1 sh -c "emqx ctl cluster status" Cluster status: #{running_nodes => ['***','***'], stopped_nodes => []}
如果您想持久化EMQX docker容器,需要保留以下目录:
/opt/emqx/data/opt/emqx/log由于这些文件夹中的数据部分存储在/opt/emqx/data/mnesia/${node_name}下,用户还需要重用相同的节点名称才能看到之前的状态。要使其工作,需要将EMQX_NODE__NAME的主机部分设置为静态值,该值在重启或重新创建容器时不会更改。它可以是容器名称、主机名或回环IP地址127.0.0.1(如果只有一个节点)。
如果使用Docker Compose,配置如下所示:
volumes: vol-emqx-data: name: foo-emqx-data vol-emqx-log: name: foo-emqx-log services: emqx: image: arm64v8/emqx:latest restart: always environment: EMQX_NODE__NAME: foo_emqx@127.0.0.1 volumes: - vol-emqx-data:/opt/emqx/data - vol-emqx-log:/opt/emqx/log
在Linux主机上,最简单的方法是调优指南。
如果要通过docker调优Linux内核,必须确保docker是最新版本(>=1.12)。
docker run -d --name emqx -p 18083:18083 -p 1883:1883 \ --sysctl fs.file-max=2097152 \ --sysctl fs.nr_open=2097152 \ --sysctl net.core.somaxconn=32768 \ --sysctl net.ipv4.tcp_max_syn_backlog=16384 \ --sysctl net.core.netdev_max_backlog=16384 \ --sysctl net.ipv4.ip_local_port_range=1000 65535 \ --sysctl net.core.rmem_default=262144 \ --sysctl net.core.wmem_default=262144 \ --sysctl net.core.rmem_max=16777216 \ --sysctl net.core.wmem_max=16777216 \ --sysctl net.core.optmem_max=16777216 \ --sysctl net.ipv4.tcp_rmem=1024 4096 16777216 \ --sysctl net.ipv4.tcp_wmem=1024 4096 16777216 \ --sysctl net.ipv4.tcp_max_tw_buckets=1048576 \ --sysctl net.ipv4.tcp_fin_timeout=15 \ arm64v8/emqx:latest
注意:不要以特权模式运行EMQX docker或将系统proc挂载到容器中以调优Linux内核,这是不安全的。
查看此镜像中包含的软件的许可证信息。
与所有Docker镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)约束。
一些能够自动检测到的额外许可证信息可能会在repo-info仓库的emqx/目录中找到。
至于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用都符合其中包含的所有软件的相关许可证。

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