欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > Docker安装RabbitMQ

Docker安装RabbitMQ

2025/1/2 22:14:46 来源:https://blog.csdn.net/Liu_Downloads/article/details/144817680  浏览:    关键词:Docker安装RabbitMQ

Docker安装RabbitMQ

准备工作

  1. 先准备配置目录和持久化目录,举个栗子:mkdir -p /opt/module/rabbitmq/{data,logs,conf,plugins}

拉取官方RabbitMQ镜像

# 拉取 rabbitmq:3.8.23-management
docker pull rabbitmq:3.8.23-management
# 拉取最新版rabbitmq镜像
docker pull rabbitmq

启动一个临时容器【通过创建一个临时的测试容器,用来复制配置文件,来反推配置】

docker run -d \
-p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--name rabbitmq rabbitmq:3.8.23-management

rabbitmq运行在docker容器中对应的目录如下:

  • rabbitmq.conf配置文件:/etc/rabbitmq/rabbitmq.conf
  • rabbitmq配置文件夹:/etc/rabbitmq
  • 日志目录:/var/log/rabbitmq
  • 数据目录:/var/lib/rabbitmq
    了解rabbitmq在docker中运行的目录地址是为了把他们给复制到宿主机的目录下
  • 插件目录:/plugins
复制rabbitmq的配置文件到宿主机中
# 将容器中的 rabbitmq配置文件夹 下内容复制到宿主机
docker cp rabbitmq:/etc/rabbitmq  /opt/module/rabbitmq/conf# 将容器中的 rabbitmq数据文件夹 复制到宿主机【可以不执行】
docker cp rabbitmq:/var/lib/rabbitmq  /opt/module/rabbitmq/data# 将容器中的log文件夹复制到宿主机【可以不执行】
docker cp rabbitmq:/var/log/rabbitmq  /opt/module/rabbitmq/logs
docker cp rabbitmq:/etc/rabbitmq     /opt/module/rabbitmq/conf
docker cp rabbitmq:/opt/rabbitmq/plugins     /opt/module/rabbitmq
移除临时容器
docker stop rabbitmq
docker rm rabbitmq

运行镜像

docker run -d \
-p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-v /opt/module/rabbitmq/data:/var/lib/rabbitmq \
-v /opt/module/rabbitmq/plugins:/opt/rabbitmq/plugins \
-v /opt/module/rabbitmq/logs:/var/log/rabbitmq \
-v /opt/module/rabbitmq/conf/rabbitmq:/etc/rabbitmq \
--restart=always \
--hostname rabbitmq_master \
--name rabbitmq rabbitmq:3.8.23-management
  • -d: 指定容器以“后台”模式运行,即在后台运行容器。
  • -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883: 将容器内部的端口映射到宿主机的端口。这里列出了5个端口映射:
    • 15672:15672: RabbitMQ的管理控制台端口。
    • 5672:5672: RabbitMQ的AMQP端口,用于客户端连接。
    • 25672:25672: RabbitMQ的内部通信端口。
    • 61613:61613: 用于STOMP协议的端口。
    • 1883:1883: 用于MQTT协议的端口。
  • -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin: 设置RabbitMQ默认用户和密码。在这里,用户名设置为"admin",密码也设置为"admin"。
  • -v /opt/module/rabbitmq/data:/var/lib/rabbitmq: 将宿主机的目录挂载到容器中,用于持久化存储RabbitMQ的数据。
  • -v /opt/module/rabbitmq/plugins:/opt/rabbitmq/plugins: 将宿主机的目录挂载到容器中,用于加载RabbitMQ插件。
  • -v /opt/module/rabbitmq/logs:/var/log/rabbitmq: 将宿主机的目录挂载到容器中,用于存储RabbitMQ的日志。
  • -v /opt/module/rabbitmq/conf/rabbitmq:/etc/rabbitmq: 将宿主机的RabbitMQ配置文件目录挂载到容器中,以便覆盖默认的RabbitMQ配置。
  • --restart=always: 设置容器始终在退出时重新启动。
  • --hostname rabbitmq_master: 指定容器的主机名为"rabbitmq_master"。
  • --name rabbitmq: 指定容器的名称为"rabbitmq"。
  • rabbitmq:3.8.23-management 是指要使用的 RabbitMQ 镜像的名称和标签。在这个例子中,使用的是 RabbitMQ 的版本为 3.8.23,并且带有管理插件的镜像。通过添加 -management 标签,该镜像将包含 RabbitMQ 的管理界面,您可以通过访问 http://<宿主机IP>:15672 来查看和管理 RabbitMQ。

注:前者是外围访问端口:后者是容器内部端口
如下命令可后台启动tomcat
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

查看启动日志

#docker logs [服务id/服务名]
docker logs rabbitmqdocker logs -f -t --tail 20 rabbitmq

查看防火墙【开放端口】

# 查询端口是否开放
firewall-cmd --query-port=15672/tcp
firewall-cmd --query-port=5672/tcp
firewall-cmd --query-port=25672/tcp
firewall-cmd --query-port=61613/tcp
firewall-cmd --query-port=1883/tcp# 开放端口
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --permanent --add-port=5672/tcp
firewall-cmd --permanent --add-port=25672/tcp
firewall-cmd --permanent --add-port=61613/tcp
firewall-cmd --permanent --add-port=1883/tcp# 移除端口
firewall-cmd --permanent --remove-port=15672/tcp
firewall-cmd --permanent --remove-port=5672/tcp
firewall-cmd --permanent --remove-port=25672/tcp
firewall-cmd --permanent --remove-port=61613/tcp
firewall-cmd --permanent --remove-port=1883/tcp# 重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload# 查看已经开发那些端口
firewall-cmd --list-ports
firewall-cmd --zone=public --list-ports

进入RabbitMQ容器内部

docker ps     # 查看正在运行的容器,并得到 容器id# 进入tomcat容器内部
docker exec -it [容器id] /bin/bash  # 中间那个是容器id 就是 CONTAINER_ID
#  -it 表示进入
docker exec -it rabbitmq bash
docker exec -it rabbitmq /bin/bash
# 使用 命令别名 开启 ll命令
cat <<EOF >> /etc/profile
alias ll='ls -l --color=tty'
alias grep='grep --color=auto'
EOFsource /etc/profile
#进入容器激活后台管理插件
docker exec -it rabbitmq /bin/bash#激活后台管理插件
rabbitmq-plugins enable rabbitmq_management

查看docker下的ip地址

docker inspect [container_id 容器id]docker inspect [container_id 容器id] | grep ip addressdocker inspect --format='{{.NetworkSettings.IPAddress}}' tomcat

测试

#浏览器中服务器
http://虚拟机IP:15672
账号:admin
密码:admin

卸载

#停止rabbitmq服务(也可以停止其他)
#docker stop [容器id/容器名]
docker stop rabbitmq#删除rabbitmq服务(也可以删除其他)
#docker rm [服务id/服务名]
docker rm rabbitmq#删除rabbitmq镜像
#docker rmi [镜像id/镜像名]
docker rmi rabbitmq

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com