在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ,可以显著简化消息队列系统的搭建过程。以下是详细步骤,包括必要的命令和配置文件示例。
步骤一:安装Docker
-
更新系统软件包
sudo dnf update -y
-
安装Docker
sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io
-
启动并设置Docker为开机自启动
sudo systemctl start docker sudo systemctl enable docker
-
验证Docker安装
sudo docker run hello-world
步骤二:拉取RocketMQ Docker镜像
-
从Docker Hub拉取RocketMQ镜像
sudo docker pull apache/rocketmq:latest
步骤三:启动NameServer和Broker
-
启动NameServer
sudo docker run -d --name rmqnamesrv -p 9876:9876 apache/rocketmq:latest sh mqnamesrv
-
启动Broker
创建一个
broker.conf
配置文件:brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 namesrvAddr = 127.0.0.1:9876 autoCreateTopicEnable = true
启动Broker容器:
sudo docker run -d --name rmqbroker -p 10911:10911 -p 10909:10909 --link rmqnamesrv:namesrv -v $(pwd)/broker.conf:/opt/rocketmq-4.7.1/conf/broker.conf apache/rocketmq:latest sh mqbroker -c /opt/rocketmq-4.7.1/conf/broker.conf
步骤四:启动RocketMQ控制台(可选)
-
拉取RocketMQ控制台镜像
sudo docker pull styletang/rocketmq-console-ng
-
启动RocketMQ控制台
sudo docker run -d --name rmqconsole -p 8080:8080 --link rmqnamesrv:namesrv styletang/rocketmq-console-ng
完整示例代码
# 更新系统和安装Docker
sudo dnf update -y
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world# 拉取RocketMQ镜像
sudo docker pull apache/rocketmq:latest# 启动NameServer
sudo docker run -d --name rmqnamesrv -p 9876:9876 apache/rocketmq:latest sh mqnamesrv# 创建broker.conf文件
echo "brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
namesrvAddr=127.0.0.1:9876
autoCreateTopicEnable=true" > broker.conf# 启动Broker
sudo docker run -d --name rmqbroker -p 10911:10911 -p 10909:10909 --link rmqnamesrv:namesrv -v $(pwd)/broker.conf:/opt/rocketmq-4.7.1/conf/broker.conf apache/rocketmq:latest sh mqbroker -c /opt/rocketmq-4.7.1/conf/broker.conf# 拉取并启动RocketMQ控制台(可选)
sudo docker pull styletang/rocketmq-console-ng
sudo docker run -d --name rmqconsole -p 8080:8080 --link rmqnamesrv:namesrv styletang/rocketmq-console-ng