Docker部署EMQX最大包长度配置

Docker EMQX 5.4 最大包长度配置

一、最大包长度配置(Docker Compose 方式)

1
2
3
4
5
6
7
8
9
10
11
12
services:
emqx:
image: emqx/emqx:5.4
container_name: emqx
environment:
- EMQX_MQTT__MAX_PACKET_SIZE=10485760
ports:
- 1883:1883
- 8083:8083
- 8084:8084
- 18083:18083
restart: unless-stopped

二、最大包长度配置(Docker Run 方式)

1
2
3
4
5
6
7
docker run -d --name emqx \
-e "EMQX_MQTT__MAX_PACKET_SIZE=10485760" \
-p 1883:1883 \
-p 8083:8083 \
-p 8084:8084 \
-p 18083:18083 \
emqx/emqx:5.4

三、配置验证命令

1
docker exec -it emqx emqx_ctl get mqtt.max_packet_size

正常输出:mqtt.max_packet_size = 10485760(对应10MB)

四、常见启动报错修复

1. 最大包长度配置格式错误

错误:配置带MB单位(如10MB),导致启动失败

修复:使用纯数字(字节)配置,参考一、二章节命令

2. 配置文件挂载权限错误

报错特征:permission denied / cannot read config / bad config

1
2
3
4
5
6
7
8
9
10
# 停止并删除旧容器
docker stop emqx
docker rm emqx

# 改用环境变量启动(规避权限问题)
docker run -d --name emqx \
-e "EMQX_MQTT__MAX_PACKET_SIZE=10485760" \
-p 1883:1883 \
-p 18083:18083 \
emqx/emqx:5.4

3. 端口被占用

报错特征:address already in use

1
2
3
4
5
6
7
8
9
10
11
12
# 清理旧容器
docker stop emqx
docker rm emqx

# 重新启动
docker run -d --name emqx \
-e "EMQX_MQTT__MAX_PACKET_SIZE=10485760" \
-p 1883:1883 \
-p 8083:8083 \
-p 8084:8084 \
-p 18083:18083 \
emqx/emqx:5.4

4. 报错日志查看(精准定位问题)

1
docker logs emqx

五、总结

EMQX 5.4 最大包长度需用纯数字(字节)配置,启动报错优先排查配置格式、权限、端口占用,所有命令可直接复制执行,配置后需重启容器生效。