安裝之前先做一下前置工作:
1.在centos中添加用戶emqx及用戶組emqx,因為emqx在docker容器中用戶是emqx。
新增用戶組 groupadd emqx 新增用戶,分配用戶組 useradd -g emqx -m emqx 查詢用戶 cut -d : -f 1 /etc/passwd 查詢用戶組 cut -d : -f 1 /etc/group
2.啟動沒有掛在宿主機目錄的EQMX服務,啟動成功后訪問http://服務器Ip:18083 即可打開后台,默認賬戶名 admin 密碼public
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx
3.復制已啟動成功的EMQX容器中存儲數據、日志相關的目錄及其文件到宿主機制定掛在目錄
分別復制以下三個目錄 /opt/emqx/data /opt/emqx/etc /opt/emqx/log 執行命令: docker 容器名稱:目錄 宿主機目錄 注意:容器目錄和宿主目錄中間有一個空格. 示例: docker cp k8s_emqx_emqx-79b8ccdcc5-n28b2_tongchuan_003b9b1f-3c38-11eb-866c-5254003ed89b_0:/opt/emqx/data /docker_volume/emqx/data
4.修改宿主機目錄的所屬用戶和所屬用戶組為emqx
chown -R emqx:emqx /docker_volume/emqx/
注意:此處的/docker_volume/emqx/ 為蘇主機目錄,-R是將emqx及其所有子目錄、文件的所屬用戶、用戶組都修改。
做完以上前置步驟之后就記得將之前為了復制數據目錄而且啟動的容器停止刪除掉。下來就可以正式啟動EMQX,分為以下兩種方式:
Docker啟動方式:
docker run -d --name emqx -e EMQX_HOST="127.0.0.1" -e EMQX_NAME="demo_emqx" -v /docker_volume/emqx/data:/opt/emqx/data -v /docker_volume/emqx/etc:/opt/emqx/etc -v /docker_volume/emqx/log:/opt/emqx/log -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx 注意: EMQX_HOST 是本機IP,就填寫127.0.0.1即可。EMQX_NAME是EMQX存儲數據的唯一目錄名稱。 在docke啟動的remqx運行產生的數據存儲在 data/mnesia/$node_name 目錄下,$node_name 是容器當前的 host_name 和 ip,用 docker 部署的時候每次都會變動的, 為了保證容器重啟之后配置的數據還在,需要配置這兩個環境變量。
Rancher啟動方式: