emqx想要在多主机部署成集群形式,同时又想要部署在docker里面进行cpu,内存等限制,参考一下下面的run命令
首先获取镜像docker pull emqx/emqx:tag
然后修改一下下面的run命令
1 docker run -tid --name emqx --restart=always --cpus=0.6 --network host 2 -e EMQX_LISTENER__TCP__EXTERNAL=1883 3 -e EMQX_NAME=XXXXX 4 -e EMQX_HOST=IP地址/域名 5 -e EMQX_MANAGEMENT__LISTENER__HTTP=18080 6 -e EMQX_CLUSTER__NAME=ys_emqxcl 7 -e EMQX_CLUSTER__DISCOVERY=static 8 -e EMQX_CLUSTER__STATIC__SEEDS="....." 9 -e EMQX_NODE__DIST_LISTEN_MIN=6000 10 -e EMQX_NODE__DIST_LISTEN_MAX=7999 11 -e EMQX_NODE__COOKIE=emqxsecretcookie 12 emqx/emqx:v3.2.7
比较需要注意的是--network选择host,同时EMQX_NODE__COOKIE和EMQX_CLUSTER__NAME在集群内部要保持一致,这样和直接部署在主机上一样,但是同时又利用了docker的限制资源的能力,算是投机取巧吧,linux貌似可以直接限制进程的资源使用。