Cookie是怎样判定是否使用过的

在一台新的服务器用docker创建容器的时候,一直报cookies已被使用
Crash dump is being written to: /opt/emqx/log/erl_crash.dump…done
WARNING: Default (insecure) Erlang cookie is in use.
WARNING: Configure node.cookie in /opt/emqx/etc/emqx.conf or override from environment variable EMQX_NODE__COOKIE
WARNING: NOTE: Use the same cookie for all nodes in the cluster.
EMQX_DASHBOARD__LISTENERS__HTTP__BIND [dashboard.listeners.http.bind]: 18083
EMQX_RPC__PORT_DISCOVERY [rpc.port_discovery]: manual
EMQX_LOG__CONSOLE__ENABLE [log.console.enable]: false
EMQX_NODE__DATA_DIR [node.data_dir]: data
EMQX_NODE__NAME [node.name]: emqx@docker.emqx.dev
Runtime terminating during boot (terminating)

emqx:
image: emqx/emqx:5.8.6
ports:
- “1883:1883”
- “8083:8083”
- “8084:8084”
- “8883:8883”
- “18083:18083”
volumes:
- ./config/emqx-plugins:/opt/emqx/plugins
- ./data/emqx-data:/opt/emqx/data
- ./log/emqx:/opt/emqx/log
- ./config/emqx.conf:/opt/emqx/etc/emqx.conf
environment:
- EMQX_HOST=docker.emqx.dev
- EMQX_NODE__DATA_DIR=“data”
- EMQX_LOG__FILE__DEFAULT__ENABLE=true
- EMQX_LOG__CONSOLE__ENABLE=false
- EMQX_DASHBOARD__LISTENERS__HTTP__BIND=18083
- EMQX_LISTENERS__SSL__DEFAULT=marked_for_deletion
- EMQX_LISTENERS__WS__DEFAULT=marked_for_deletion
- EMQX_LISTENERS__WSS__DEFAULT=marked_for_deletion
privileged: true
restart: on-failure:3
healthcheck:
test: [“CMD”, “/opt/emqx/bin/emqx_ctl”, “status”]
interval: 60s
timeout: 15s
retries: 3
start_period: 90s
sysctls:
net.core.somaxconn: 32768
net.ipv4.tcp_syncookies: 0
net.ipv4.tcp_max_syn_backlog: 16384
net.ipv4.tcp_max_tw_buckets: 1048576
net.ipv4.tcp_fin_timeout: 15
net.ipv4.ip_local_port_range: “1024 65535”
ulimits:
nproc: 1048576
nofile:
soft: 1048576
hard: 1048576
这是启动的配置文件

你在emqx.conf里面找到cookie,设置成一个长一点的随机值就行了

修改了还是不行,我把./data/mnesia里的管理员信息删掉了倒是可以了

不可能。mnesia 里面根本不会存 cookie

修改cookie后报错信息变成了这样:
Crash dump is being written to: /opt/emqx/log/erl_crash.dump…done
EMQX_DASHBOARD__LISTENERS__HTTP__BIND [dashboard.listeners.http.bind]: 18083
EMQX_RPC__PORT_DISCOVERY [rpc.port_discovery]: manual
EMQX_LOG__CONSOLE__ENABLE [log.console.enable]: false
EMQX_NODE__DATA_DIR [node.data_dir]: data
EMQX_NODE__NAME [node.name]: emqx@docker.emqx.dev

这个报错后有没有什么解决法子?删除mnesia的话会把api也删除,导致需要重新配置api;
还有就是在裸机系统里使用二进制包安装的EMQX,将配置使用emqx ctl data export导出后,在docker容器里导入提示:
emqx@29ad93091eab:/opt/emqx$ emqx ctl data import ./data/backup/emqx-export-2025-04-28-17-29-10.649.tar.gz
Node ‘emqx@docker.emqx.dev’ not responding to pings.
二进制安装的配置文件和压缩包安装的配置文件是不一样吗?

一样的。

你没有设置docker 的 hostname,抄作业的时候少了这一句: