美文网首页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