美文网首页Docker容器MQTT
EMQX的Docker持久化方法

EMQX的Docker持久化方法

作者: 爱翻身的咸鱼 | 来源:发表于2020-04-28 02:35 被阅读0次

首先,使用不带volume的yml配置文件,必须设置NODE_NAMENODE_HOST环境变量,用来保持EMQX的唯一性。下面是docker-compose.yml:

version: "3"
services:
    emqx:
        container_name: emqx
        image: emqx/emqx:v4.0.0
        networks:
            cloud:
                aliases:
                    - emqx
        environment:
            - EMQX_NAME=mqtt
            - EMQX_HOST=10.20.30.40
        ports:
            - "1883:1883"
networks:
    cloud:
        external: true

启动容器成功后,需要将容器里的相应文件夹拷贝到持久化的位置上:

docker cp emqx:/opt/emqx/etc ~/emqx/etc
docker cp emqx:/opt/emqx/lib ~/emqx/lib
docker cp emqx:/opt/emqx/data ~/emqx/data
docker cp emqx:/opt/emqx/log ~/emqx/log

然后更改这几个文件夹的Owner、Group、权限:

cd ~/emqx
chown -R 1000:1000 data etc lib log
chmod -R 775 data etc lib log

修改docker-compose.yml,添加volume映射:

volumes:
    - $HOME/emqx/lib:/opt/emqx/lib
    - $HOME/emqx/etc:/opt/emqx/etc
    - $HOME/emqx/data:/opt/emqx/data
    - $HOME/emqx/log:/opt/emqx/log

移除旧的容器,重新创建一个容器即可。

相关文章

网友评论

    本文标题:EMQX的Docker持久化方法

    本文链接:https://www.haomeiwen.com/subject/cskmwhtx.html