本文将详细介绍如何用 Docker 容器及 Docker Compose 部署单节点 RabbitMQ。
实战服务器配置 (架构 1:1 复刻小规模生产环境,配置略有不同)
主机名 | IP | CPU(核) | 内存(GB) | 系统盘(GB) | 数据盘(GB) | 用途 |
---|---|---|---|---|---|---|
docker-node-1 | 192.168.9.81 | 4 | 16 | 40 | 100 | Docker 节点 1 |
docker-node-2 | 192.168.9.82 | 4 | 16 | 40 | 100 | Docker 节点 2 |
docker-node-3 | 192.168.9.83 | 4 | 16 | 40 | 100 | Docker 节点 3 |
合计 | 3 | 12 | 48 | 120 | 300 |
实战环境涉及软件版本信息
使用 Docker 部署 RabbitMQ 服务的镜像有以下几种选择:
本文选择下载量最大的 DockerHub 官方提供的镜像,构建单节点 RabbitMQ 服务。
代码解读复制代码cd /data/containers
mkdir -p rabbitmq/{data,config,logs}
创建配置文件,vi /data/containers/rabbitmq/docker-compose.yml
yaml
代码解读复制代码services:
rabbitmq:
container_name: rabbitmq
image: rabbitmq:3.13.1-management
restart: always
ulimits:
nofile:
soft: 65536
hard: 65536
environment:
- TZ=Asia/Shanghai
- RABBITMQ_DEFAULT_USER=rbadmin
- RABBITMQ_DEFAULT_PASS=OpsXlab@2024
volumes:
- ./data:/var/lib/rabbitmq
networks:
- app-tier
ports:
- 5672:5672
- 15672:15672
networks:
app-tier:
name: app-tier
driver: bridge
#external: true
代码解读复制代码cd /data/containers/rabbitmq
docker compose up -d
代码解读复制代码$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
rabbitmq rabbitmq:3.13.1-management "docker-entrypoint.s…" rabbitmq 3 seconds ago Up 2 seconds 4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp
代码解读复制代码# 通过日志查看容器是否有异常,结果略
$ docker compose logs -f
代码解读复制代码$ ls /data/containers/rabbitmq/data/mnesia/
rabbit@ed4e3c3ed7b4 rabbit@ed4e3c3ed7b4-feature_flags rabbit@ed4e3c3ed7b4.pid rabbit@ed4e3c3ed7b4-plugins-expand