Docker部署并启动RabbitMQ
方式一:
一次性安装镜像并启动容器
docker run -di --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin123 -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 1883:1883 rabbitmq:management
- 上诉方法可直接配置好MQ并使用图形化界面
方式二:
查询rabbitmq镜像
-
通过docker语法
[root@XXXXX ~]# docker search rabbitmq NAME DESCRIPTION STARS OFFICIAL AUTOMATED rabbitmq RabbitMQ is an open source multi-protocol me… 4044 [OK] tutum/rabbitmq Base docker image to run a RabbitMQ server 22 kbudde/rabbitmq-exporter rabbitmq_exporter for prometheus 17 [OK] frodenas/rabbitmq A Docker Image for RabbitMQ 12 [OK] cyrilix/rabbitmq-mqtt RabbitMQ MQTT Adapter 9 [OK] arm64v8/rabbitmq RabbitMQ is an open source multi-protocol me… 8
-
通过docker hub查询
拉取rabbitmq镜像
docker pull rabbitmq
[root@XXX ~]# docker pull rabbitmq
Using default tag: latest
latest: Pulling from library/rabbitmq
7b1a6ab2e44d: Pull complete
37f453d83d8f: Pull complete
33be96f1328e: Pull complete
d3c5c3f5c49a: Pull complete
a3d2d8a82978: Pull complete
633da6037b0d: Pull complete
a619e412c37f: Pull complete
338c71e3d8cd: Pull complete
1daa7c79a268: Pull complete
Digest: sha256:614b261769212c54528bd99148e6ed0479a4f9e199829de4dfdfa140e8da713a
Status: Downloaded newer image for rabbitmq:latest
docker.io/library/rabbitmq:latest
查询rabbitMQ镜像
[root@XXXXX ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rabbitmq latest 05a22b32da70 4 days ago 220MB
创建并启动容器(宿主机需放开配置映射的端口)
#使用默认账密guest
docker run -d --name myRabbit -p 15672:15672 -p 5672:5672 rabbitmq
或
#指定密码的启动方式
docker run -d --name myRabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq
重点: MQ中,5672端口提供控制台服务,15672端口提供web界面服务。
查询容器
#查询运行中的容器
docker ps
#查询全部容器
docker ps -a
#启动历史容器
docker start 容器id
#查看容器的详细信息
docker inspect 容器id
[root@XXXX ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6f01c6e8f775 rabbitmq "docker-entrypoint.s…" About a minute ago Up About a minute 4369/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 5671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp myRabbit
将容器设置为自启动(当docker启动时,容器自启动)
-
新建容器时设置为自启动
docker run -d --restart=always --name myRabbit -p 15672:15672 -p 5672:5672 rabbitmq
-
为已存在的容器配置自启动
docker update --restart=always 容器id 或 容器名称
-
取消自启动
docker update --restart=no 容器id 或 容器名称
-
批量设置自启动
docker update --restart=always $(docker ps -aq)
访问RabbitMQ的web控制面板
通过 http://服务器IP:15672
未设置特殊账密时,默认账密为guest
在工程中的配置文件里,MQ的配置PORT为映射5672端口的宿主机端口
访问web控制面板的注意点
原因: 由于Docker镜像保持着尽可能轻便的原则,导致很多镜像都是阉割版。
解决方案
-
进入容器
docker exec -it 容器id /bin/bash
-
启动插件
rabbitmq-plugins enable rabbitmq_management
执行效果:
root@6f01c6e8f775:/# rabbitmq-plugins enable rabbitmq_management Enabling plugins on node rabbit@6f01c6e8f775: rabbitmq_management The following plugins have been configured: rabbitmq_management rabbitmq_management_agent rabbitmq_prometheus rabbitmq_web_dispatch Applying plugin configuration to rabbit@6f01c6e8f775... The following plugins have been enabled: rabbitmq_management started 1 plugins.