1.拉取 rabbitmq 镜像
docker pull rabbitmq:3.8.14-management
2.创建并启动容器
docker run -d \
--restart unless-stopped \
--hostname my-rabbit \
--name rabbit-server \
-p 15672:15672 \
-p 5672:5672 \
-p 1883:1883 \
-p 25672:25672 \
-p 4369:4369 \
rabbitmq:3.8.14-management
其中:
-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台 Web 端口号);
-v 映射目录或文件;
--hostname 主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
备选启动同时设置用户和密码:
docker run -d \
--restart unless-stopped \
--hostname my-rabbit \
--name rabbit-server \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-p 15672:15672 \
-p 5672:5672 \
-p 1883:1883 \
-p 25672:25672 \
-p 61613:61613 \
-p 15675:15675 \
-p 15674:15674 \
-p 15692:15692 \
-p 4369:4369 \
rabbitmq:3.8.14-management
3、执行以下三条命令,开启 mqtt 协议
docker exec $(docker ps |grep rabbitmq | awk '{print $1}') rabbitmq-plugins enable rabbitmq_management
docker exec $(docker ps |grep rabbitmq | awk '{print $1}') rabbitmq-plugins enable rabbitmq_mqtt
docker exec $(docker ps |grep rabbitmq | awk '{print $1}') rabbitmq-plugins enable rabbitmq_web_mqtt
docker exec $(docker ps |grep rabbitmq | awk '{print $1}') rabbitmq-plugins enable rabbitmq_stomp
docker exec $(docker ps |grep rabbitmq | awk '{print $1}') rabbitmq-plugins enable rabbitmq_web_stomp
docker exec $(docker ps |grep rabbitmq | awk '{print $1}') rabbitmq-plugins enable rabbitmq_web_stomp_examples
4. 在启动容器之后,可以用以下命令管理
docker stop rabbit-server(容器名,就是在开始运行时指定的name)停止rabbitmq
docker start rabbit-server 重新启动rabbitmq
docker restart rabbit-server 重新启动rabbitmq
docker rm rabbit-server 删除容器rabbitmq,删除后需要重新run
docker ps -l:显示最后启动的容器
docker ps -a:同时显示停止的容器,默认只显示启动状态
docker exec -it rabbit-server /bin/bash: 连接到容器进行操作(-t:为容器分配 一个伪终端;-i:进行交互式的标准输入)