rabbitmq的DockerCompose文件编写及解释说明。
version: '3'
services:
rabbitmq:
# 镜像
image: rabbitmq:3.13
# 容器名称
container_name: rabbitmq_3.13
# 主机名称
hostname: rmq_node_one
# 端口
ports:
# (epmd)epmd代表 Erlang端口映射守护进程,erlang发现口
- "4369:4369"
# 下面两个AMQP 0-9-1 without and with TLSclient端通信口
- "5671:5671"
- "5672:5672"
# 管理监听端口
- "15671:15671"
# 管理界面ui使用的端口
- "15672:15672"
# ( Erlang distribution) server间内部通信口
- "25672:25672"
#docker启动,容器启动
restart: always
# 加入指定网络,容器间必须要处于同一个网络才能通过容器名称进行调用
networks:
- public
volumes:
#数据文件目录
- /dockerData/compose/rabbitmq/lib:/var/lib/rabbitmq
# 配置文件目录
- /dockerData/compose/rabbitmq/etc:/etc/rabbitmq
# 日志文件目录
- /dockerData/compose/rabbitmq/log:/var/log/rabbitmq
environment:
# 默认虚拟机名
- RABBITMQ_DEFAULT_VHOST=rabbitmq-one
# 用户名
- RABBITMQ_DEFAULT_USER=root
# 密码
- RABBITMQ_DEFAULT_PASS=root
# 设置时区
- Asia/Shanghai
# 创建网络
networks:
# 默认将会创建为 docker-compose.yml所在 文件夹名_public 网络名称
public:
#表示网络已经在Docker外部定义好了
# external: true
# 使用bridge驱动创建网络
driver: bridge
运行DockerCompose文件
在docker-compose.yaml所在文件夹里运行 -d表示后台启动
docker compose up -d
启动报错如下:
panic: interface conversion: interface {} is map[string]interface {}, not string.........
设置本地日志挂载的目录权限如下所示
sudo chmod 777 -R # 日志存放路径
启动 rabbitmq_management管理工具
# 进入容器
docker exec -it 2f62c11dfac5 /bin/bash
# 执行开启web访问
rabbitmq-plugins enable rabbitmq_management