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貌似可以直接限制進程的資源使用。