macmin docker-desktop中安装emqx, 构建自定义镜像, 系统架构arm64

提示:macmin docker-desktop中安装emqx, 构建自定义镜像, 系统架构arm64“


前言

macmin docker-desktop中安装emqx, 构建自定义镜像, 系统架构arm64。首先为什么这么做,我用了默认的镜像xmqx/emqx:5.8.6,docker启动报错说是缺少依赖。换个思路通过命令uname -a命令查看系统架构,官网找到对应arm64的镜像,mac宿主机启动成功,但在docker内会报错架构不兼容或者缺少依赖…宿主机和容器的操作系统环境有差异。最终我打算构建自定义镜像,查看了emqx官网最新的5.8.6的下载链接,提供了ubunu对应的服务,于是我以ubunu:22.04作为基础镜像,结合官网的emqx-5.8.6-ubuntu22.04-amd64.tar.gz构建了自定义镜像,成功在docker容器内部启动成功。


1.官网链接

  1. EMQX文档,包含使用文档和多环境部署方案.
    https://docs.emqx.com/zh/emqx/v5.0/deploy/install.html
  2. EMQX下载目录
    https://www.emqx.com/zh/downloads/broker

2.Dockerfile

注意:在Dockerfile里面提供了两种方式,默认是下载压缩包,一步到位。如果你的docker仓库无法下载,可以参考之前的文章配置docker仓库,或者使用第二种方式,直接下载http链接中的压缩包到本地,拷贝到Dockerfile相同目录,将Dockerfile里面的下载链接换成Copy emqx-5.8.6-ubuntu22.04-arm64.tar.gz /opt/emqx/emqx.tar.gz就可以了


# 使用ubuntu:22.04 arm64 作为基础镜像
FROM ubuntu:22.04

# 安装依赖
RUN apt-get update && apt-get install -y \
    bash \
    procps \
    openssl \
    libncurses-dev \
    libatomic1 \
    wget \
    tar \
    && rm -rf /var/lib/apt/lists/*

# 创建目录(默认会创建,不过还是提前创建保险一点)
RUN mkdir -p /opt/emqx

# 下载
RUN wget https://www.emqx.com/zh/downloads/broker/v5.8.6/emqx-5.8.6-ubuntu22.04-arm64.tar.gz -O /opt/emqx/emqx.tar.gz
# 已下载emqx-5.8.6-ubuntu22.04-arm64.tar.gz 的方式
#Copy emqx-5.8.6-ubuntu22.04-arm64.tar.gz /opt/emqx/emqx.tar.gz

# 解压
RUN tar -zxf /opt/emqx/emqx.tar.gz -C /opt/emqx

# 设置工作目录
WORKDIR /opt/emqx

# 暴露端口
EXPOSE 1883 8083 8084 8883 18083

# 启动 emqx
CMD ["/opt/emqx/bin/emqx", "foreground"]

3.构建Docker镜像

在Dockerfile目录下,执行以下命令构建Docker镜像,注意:命令后面(有个点 有个点 有个点)

docker build -t mac-min-emqx:5.8.6 .

4.docker-compose.yml

构建完成后,使用以下docker-compose构建容器

services:
  mqtt:
    image: mac-min-emqx:5.8.6
    platform: linux/arm64
    container_name: mqtt
    ports:
      - "1883:1883" # MQTT TCP 端口
      - "8883:8883" # MQTT over TLS 端口
      - "8083:8083" # MQTT over WebSocket 端口
      - "8084:8084" # MQTT over WSS 端口
      - "18083:18083" # EMQX Dashboard 端口
    volumes:
      - /Users/mac/data/mqtt/data:/opt/emqx/data
      - /Users/mac/data/mqtt/lib:/opt/emqx/lib
      - /Users/mac/data/mqtt/log:/opt/emqx/log
    environment:
      - TZ=Asia/Shanghai
      - EMQX_NODE_NAME=emqx@rma-gpt-mqtt
    restart: always
    networks:
      - mac
networks:
  mac:
    driver: bridge

5.登录

http://192.168.3.238:18083/
用户名:admin
密码:public(首次登录需要修改密码)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值