Linux 环境使用 Dockfile 制作 RocketMQ Docker 镜像

Linux 环境使用 Dockfile 制作 RocketMQ Docker 镜像。基于 centos7,制作并上传到 docker hub。RocketMQ 版本 4.7.0。

1. 概述

  • 演示环境: centos7;
  • 从 apache 官网下载安装 RocketMQ 4.7.0;

2. 下载 apache 官网 RocketMQ

wget https://archive.apache.org/dist/rocketmq/4.7.0/rocketmq-all-4.7.0-bin-release.zip

unzip rocketmq-all-4.7.0-bin-release.zip

3. 生成 Dockerfile 文件

vi Dockerfile

文件内容:

FROM aaronst21/centos7_with_jdk8:1.8.0_251
MAINTAINER aaron aaronst21.163.com

# 设置环境变量
ENV ROCKETMQ_VERSION 4.7.0
ENV ROCKETMQ_HOME /usr/local/rocketmq-${ROCKETMQ_VERSION}

# 设置临时变量
ARG user=rocketmq
ARG usergroup=rocketmq

# 将解压后的 RocketMQ 包拷贝到 docker 容器中
COPY rocketmq-all-${ROCK
### 使用官方 RocketMQ Docker 镜像的方法 对于希望快速部署或运行 RocketMQ 的用户来说,使用官方提供的 Docker 镜像是最简单的方式之一。以下是具体方法: #### 1. 搜索 RocketMQ 官方镜像 可以通过 `docker search` 命令查找可用的 RocketMQ 镜像: ```bash docker search rocketmq ``` 这一步可以帮助确认是否有最新的官方镜像可供拉取[^1]。 #### 2. 拉取官方 RocketMQ 镜像 如果搜索结果显示有官方支持的镜像,则可以直接通过以下命令将其拉取至本地: ```bash docker pull apache/rocketmq:latest ``` 这里使用的标签为 `latest`,表示获取最新版本的镜像。也可以指定特定版本号来确保稳定性,例如: ```bash docker pull apache/rocketmq:4.9.4 ``` #### 3. 启动 RocketMQ 容器 启动容器时需注意配置必要的端口映射以及数据卷挂载。以下是一个典型的启动命令示例: ```bash docker run -d \ --name rocketmq-broker \ -p 10911:10911 \ -p 10909:10909 \ -e "JAVA_OPT=-server -Xms512m -Xmx512m" \ apache/rocketmq:4.9.4 sh mqbroker start & ``` 上述命令会启动一个名为 `rocketmq-broker` 的容器,并将宿主机的端口 `10911` 和 `10909` 映射到容器内部对应的端口上。 --- ### 自定义构建 RocketMQ Docker 镜像 当无法满足需求或者需要针对特殊架构(如 ARM64)进行适配时,可以考虑自定义构建 RocketMQDocker 镜像。 #### 1. 准备基础环境 假设目标操作系统为 CentOS 7 并计划安装 RocketMQ 版本 4.7.0,可按照如下方式操作: - **下载 RocketMQ** 从 Apache 官网下载所需版本的二进制文件: ```bash wget https://archive.apache.org/dist/rocketmq/4.7.0/rocketmq-all-4.7.0-bin-release.zip unzip rocketmq-all-4.7.0-bin-release.zip ``` - **创建 Dockerfile** 编辑一份适合当前场景的 `Dockerfile` 文件,其内容可能类似于以下结构: ```dockerfile FROM centos:7 RUN yum install -y java-1.8.0-openjdk && yum clean all ENV ROCKETMQ_VERSION=4.7.0 WORKDIR /opt/rocketmq ADD rocketmq-all-${ROCKETMQ_VERSION}-bin-release.zip . CMD ["sh", "-c", "./bin/mqnamesrv"] ``` 此脚本会在 CentOS 7 上安装 OpenJDK 环境并将解压后的 RocketMQ 放置在 `/opt/rocketmq` 路径下[^2]。 #### 2. 构建并推送镜像 完成以上准备工作之后即可执行实际构建过程: ```bash docker build -t my-custom-rocketmq:4.7.0 . docker push my-custom-rocketmq:4.7.0 ``` 另外,在某些情况下还可以借助工具提取现有镜像中的原始 `Dockerfile` 来简化定制流程。比如利用 `dfimage` 获取官方镜像的信息作为参考[^3]: ```bash alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage" dfimage -sV=1.36 apache/rocketmq:4.9.4 > ./custom_dockerfile ``` --- ### 总结 无论是直接采用官方发布的成熟方案还是自行开发专属版本,都应充分考虑到生产环境中所需的高可靠性与易维护特性。合理规划资源分配策略的同时也要兼顾性能调优方面的细节处理。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值