之前看到 DockerHub 上有大佬制作了 m1 芯片, aarch64架构的 rocketmq 镜像, 所以就尝试的安装了下, 亲测可用: 

一. docker-compose.yml 文件命令

volumes 挂载目录需要换成自己的目录

注意 depends_on 标签, broker 和 console 的 启动要晚于 namesrv, 因为 broker 需要注册到 namesrv

version: "3.0"
services:
  namesrv:
    image: candice0630/rocketmq:5.0.0-alpine
    container_name: rocketmqNameServer
    volumes:
      - /Users/canxiusi/Documents/docker/rocketmq/nameServer/logs:/home/rocketmq/logs/rocketmqlogs
      - /Users/canxiusi/Documents/docker/rocketmq/broker/conf/broker.conf:/home/rocketmq/rocketmq-5.0.0/conf/broker.conf
    environment:
      - MEM_XMS=500m
      - MEM_XMX=500m
      - MEM_XMN=256m
    command:
      sh mqnamesrv
    ports:
      - "9876:9876"

  rocketmqBroker:
    image: candice0630/rocketmq:5.0.0-alpine
    container_name: rocketmqBroker
    volumes:
      - /Users/canxiusi/Documents/docker/rocketmq/broker/logs:/home/rocketmq/logs/rocketmqlogs
      - /Users/canxiusi/Documents/docker/rocketmq/broker/store:/home/rocketmq/store
      - /Users/canxiusi/Documents/docker/rocketmq/broker/conf/broker.conf:/home/rocketmq/rocketmq-5.0.0/conf/broker.conf
    depends_on:
      - namesrv
    environment:
      - MEM_XMS=500m
      - MEM_XMX=500m
      - MEM_XMN=256m
      - NAMESRV_ADDR:namesrv:9876
      - BROKER_ID=0
      - BROKER_ROLE=ASYNC_MASTER
      - FLUSH_DISK_TYPE=SYNC_FLUSH
    command:
      sh mqbroker -n namesrv:9876  -c /home/rocketmq/rocketmq-5.0.0/conf/broker.conf
    ports:
      - "10909:10909"
      - "10911:10911"
      - "10912:10912"

  rocketmqConsole:
    image: candice0630/rocketmq-console-ng:2.0
    container_name: rocketmqConsole
    depends_on:
      - namesrv
    environment:
      JAVA_OPTS: "-Drocketmq.namesrv.addr=namesrv:9876 -Drocketmq.config.isVIPChannel=false -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    ports:
      - 19876:8080

二. 容器运行情况

之后可以使用 docker ps | grep rocketmq 查看容器运行情况

然后使用 http://localhost:19876/#/ 可以登录到 rocketmq 运维控制台, 可以看到 broker, topic, 等信息

之后我们使用 docker network ls, 以及 docker inspect + network id 命令可以查看到 rocketmq 的网络组, 可以看到网络模式 Driver 是 bridge 桥接, 以及下面的3个rocketmq容器所在的ip

如果你想修改默认网关和网络模式, 可以在 docker-compose 文件中编写 network 标签

三. 容器网络

我们可以使用  docker compose  exec rocketmqConsole /bin/bash 该命令进入到一个正在运行的容器内部, 现在我们进入到 rocketmq 运维控制台这个容器中, 使用 ping 命令测试网络情况

可以发现, 在同一个网络组下面的容器, 可以直接使用 ping + 容器名的方式测试网络互联情况

ping rocketmqBroker, 会自动识别到 172.18.0.4 这个ip 

同样的, 如果使用  docker compose  exec rocketmqBroke /bin/bash 进入到 broker 这个容器中, 也可以 ping 通 rocketmqConsole

GitHub 加速计划 / compose / compose
33.28 K
5.15 K
下载
compose - Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过Compose文件格式简化应用部署过程。
最近提交(Master分支:3 个月前 )
5e3a0953 full diff: https://github.com/docker/cli/compare/v27.4.0-rc.1...8d1bacae3e49ed1d096eede8eef4ae851d7f2eae Signed-off-by: Sebastiaan van Stijn <github@gone.nl> 6 天前
a2a3eb72 - full diff: https://github.com/docker/cli/compare/cb3048fbebb1...v27.4.0-rc.1 Signed-off-by: Sebastiaan van Stijn <github@gone.nl> 6 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐