Docker 安装 RabbitMQ

Docker-Compose 单机安装 RabbitMQ

RabbitMQ 的数据库名称规则是 NODENAME@hostname,由于 Docker 每次从 Docker Image 启动容器的时候会自动生成 hostname,这样一来之前保存在主机上的数据库就会没用了,包括之前创建的用户也会没有了。所以在创建容器的时候必须指定 --hostname=rabbitmq,这样 Docker 环境启动后 RabbitMQ 就会一直读取固定目录中的数据了。docker-compose.yml 的文件内容如下,其中 RABBITMQ_DEFAULT_USER 为用户名,RABBITMQ_DEFAULT_PASS 为用户密码,5672 为 RabbitMQ 的服务端口,15672 为 RabbitMQ 的 Web 控制台的端口。RabbitMQ 的 Web 控制台默认是未启用的,若需启用 Web 控制台的功能,可以挂载对应的配置文件到容器内的 /etc/rabbitmq/enabled_plugins,而配置文件的内容为 RabbitMQ 启用的插件列表。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
rabbitmq:
image: rabbitmq:3.8.14
container_name: rabbitmq-3.8.14
hostname: rabbitmq
privileged: false
networks:
rabbitmq-network:
ipv4_address: 172.175.0.5
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=admin
ports:
- 5672:5672
- 15672:15672
volumes:
- '/container/mahattan/rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins'

networks:
rabbitmq-network:
name: rabbitmq-network
driver: bridge
ipam:
config:
- subnet: 172.175.0.0/24

上述挂载的 /container/mahattan/rabbitmq/enabled_plugins 的配置文件内容如下:

1
[rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp].

RabbitMQ 镜像与容器管理命令:

1
2
3
4
5
6
7
8
9
10
11
# 创建并启动RabbitMQ容器
# docker-compose up -d

# 查看RabbitMQ的运行状态
# docker-compose ps

# 查看RabbitMQ的运行日志
# docker logs rabbitmq-3.8.14

# 浏览器访问RabbitMQ的管理界面,访问地址如下
http://127.0.0.1:15672

参考资料