You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1环境下Docker容器部署ActiveMQ Artemis失败求助

在Mac M1的Docker容器中部署ActiveMQ Artemis的解决方案

问题背景

在Mac M1上运行ActiveMQ Artemis容器时遇到多类报错:

  1. 直接执行基础启动命令时报错:
2024-02-09 20:30:14 CREATE_ARGUMENTS=--user artemis --password artemis --silent --require-login --http-host 0.0.0.0 --relax-jolokia
 Cannot initialize queue:Function not implemented

 Usage: artemis help [<args>...]
 use 'help <command>' for more information
     [<args>...]
  1. 添加EXTRA_ARGS: "--nio --host 0.0.0.0 --http-host 0.0.0.0 --relax-jolokia"参数后出现段错误:

[Too many errors, abort]
2024-02-09 20:44:26 qemu: uncaught target signal 11 (Segmentation fault) - core dumped

  1. 使用Docker Compose配置启动后,容器虽能启动但无法连接Web控制台,日志最终仍出现段错误。

解决方案

问题核心是Mac M1的ARM架构与官方旧版latest-alpine镜像的x86架构不兼容,导致qemu模拟时出现异常。以下是两种可行的部署方案:

方案1:使用ARM架构兼容的指定版本镜像

官方从ActiveMQ Artemis 2.30.0版本开始提供ARM64架构适配的镜像,直接使用该版本及以上即可:

单容器启动命令

docker run --detach --name mycontainer -p 61616:61616 -p 8161:8161 --rm apache/activemq-artemis:2.30.0-alpine

Docker Compose配置

修改docker-compose.yml,指定兼容ARM的镜像版本:

version: "3.8"
services:
  activemq-artemis:
    container_name: artemis_simple
    image: apache/activemq-artemis:2.30.0-alpine
    environment:
      ARTEMIS_USER: "artemis"
      ARTEMIS_PASSWORD: "artemis"
    ports:
      - "8161:8161"
      - "61616:61616"
    restart: unless-stopped
    networks:
      - artemis

networks:
  artemis:
    driver: bridge

方案2:强制拉取ARM架构的最新镜像

若想使用latest标签,可通过指定平台参数,确保Docker拉取ARM64架构的镜像:

docker run --platform linux/arm64/v8 --detach --name mycontainer -p 61616:61616 -p 8161:8161 --rm apache/activemq-artemis:latest-alpine

验证部署

容器启动后,访问http://localhost:8161,使用配置的用户名artemis和密码artemis登录Web控制台,确认是否能正常访问。同时可通过消息客户端连接61616端口,测试消息收发功能是否正常。

内容的提问来源于stack exchange,提问作者skyho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 11:41:21