【RabbitMQ】【Docker】基于docker-compose构建rabbitmq容器

news2024/11/25 4:32:14

本文通过docker-compose构建一个单体的rabbtimq容器。

1,docker、docker-compose环境

首先需要有docker和docker-compose环境,docker安装[1],docker-compose安装[2]。

通过下列命令确定docker、docker-compose是否安装成功。

[root@192 gengzhihao]# docker version
Client: Docker Engine - Community
 Version:           25.0.3
 API version:       1.44
 Go version:        go1.21.6
 Git commit:        4debf41
 Built:             Tue Feb  6 21:17:10 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          25.0.3
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.6
  Git commit:       f417435
  Built:            Tue Feb  6 21:16:08 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

[root@192 bin]# docker-compose version
Docker Compose version v2.24.6

2,构建dockerfile,启动容器

docker-compose在/usr/local/bin里,我们就在/usr/local下构建一个docker-compose目录,里面再构建各级不同容器的目录,用于构建dockerfile和挂载目录[3]。

[root@192 bin]# cd /usr/local
[root@192 local]# ls
bin  docker-mount  etc  games  include  lib  lib64  libexec  mongodb  mycat  mysql  sbin  share  src
[root@192 local]# mkdir docker-compose
[root@192 local]# ls
bin             docker-mount  games    lib    libexec  mycat  sbin   src
docker-compose  etc           include  lib64  mongodb  mysql  share
[root@192 local]# cd docker-compose/
[root@192 docker-compose]# mkdir rabbitmq
[root@192 docker-compose]# cd rabbitmq/

在其中构建dockerfile

[root@192 rabbitmq]# vim docker-compose.yml

内容如下:

version: '3.1'
services:
  rabbitmq:
    restart: always
    image: daocloud.io/library/rabbitmq:3.8.8
    volumes:
      - ./data/:/var/lib/rabbitmq/
      - ./log/:/var/log/rabbitmq/log/
    ports:
      - 15672:15672
      - 5672:5672

启动rabbitmq的容器,curl其端口看一下是否正常返回AMQP,docker ps看一下容器名字是什么,后面进入容器内部用得上。

[root@192 rabbitmq]# docker-compose up -d
[+] Running 11/11
 ✔ rabbitmq 10 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                    40.5s 
   ✔ 5d9821c94847 Pull complete                                                                              25.6s 
   ✔ a610eae58dfc Pull complete                                                                               0.4s 
   ✔ a40e0eb9f140 Pull complete                                                                               0.4s 
   ✔ d691f0af2920 Pull complete                                                                               1.3s 
   ✔ 53d0225d76e3 Pull complete                                                                              31.4s 
   ✔ 7c993fe17403 Pull complete                                                                               1.6s 
   ✔ 0d9ec409b148 Pull complete                                                                              16.0s 
   ✔ 59a47a965242 Pull complete                                                                              16.3s 
   ✔ e0f8eb2a167a Pull complete                                                                              16.5s 
   ✔ 75f84d813186 Pull complete                                                                              16.8s 
[+] Running 1/2
 ⠴ Network rabbitmq_default       Created                                                                     1.4s 
 ✔ Container rabbitmq-rabbitmq-1  Started                                                                     1.3s 
#返回AMQP为正常返回
[root@192 rabbitmq]# curl localhost:5672
AMQP	[root@192 rabbitmq]# docker ps
CONTAINER ID   IMAGE                                COMMAND                   CREATED              STATUS              PORTS                                                                                                                                      NAMES
39dc5f01ded3   daocloud.io/library/rabbitmq:3.8.8   "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   rabbitmq-rabbitmq-1

启动的时候,有的时候会报错,

Error response from daemon: Head "https://daocloud.io/v2/library/rabbitmq/manifests/3.8.8": Get "https://daohub-auth.daocloud.io/auth?scope=repository%3Alibrary%2Frabbitmq%3Apull&service=daocloud.io": net/http: request canceled (Client.Timeout exceeded while awaiting headers)

解决方法就是多试几次命令就好[4]。

3,进入容器,配置可视化界面

进入容器,进入其/opt/rabbitmq目录,其中plugins和sbin目录书我们需要注意的。进入容器时用到的容器名字,是docker ps时查看到的rabbitmq容器的名字。

[root@192 rabbitmq]# docker exec -it rabbitmq-rabbitmq-1 /bin/bash
root@39dc5f01ded3:/# cd /opt/rabbitmq/
root@39dc5f01ded3:/opt/rabbitmq# ls
INSTALL				LICENSE-BSD-base64js	     LICENSE-MIT-Flot	    LICENSE-MPL		  etc
LICENSE				LICENSE-BSD-recon	     LICENSE-MIT-Mochi	    LICENSE-MPL-RabbitMQ  plugins
LICENSE-APACHE2			LICENSE-ISC-cowboy	     LICENSE-MIT-Sammy	    LICENSE-erlcloud	  sbin
LICENSE-APACHE2-ExplorerCanvas	LICENSE-MIT-EJS		     LICENSE-MIT-Sammy060   LICENSE-httpc_aws	  share
LICENSE-APACHE2-excanvas	LICENSE-MIT-EJS10	     LICENSE-MIT-jQuery     LICENSE-rabbitmq_aws
LICENSE-APL2-Stomp-Websocket	LICENSE-MIT-Erlware-Commons  LICENSE-MIT-jQuery164  escript

进入plugins目录,可以看到一个 rabbitmq_management-3.8.8.ez,是可视化界面需要用到的脚本,复制rabbitmq_management,版本号不用记。

root@39dc5f01ded3:/opt/rabbitmq/plugins# ls
README					    rabbitmq_federation-3.8.8.ez
accept-0.3.5.ez				    rabbitmq_federation_management-3.8.8.ez
amqp10_client-3.8.8.ez			    rabbitmq_jms_topic_exchange-3.8.8.ez
amqp10_common-3.8.8.ez			    rabbitmq_management-3.8.8.ez
amqp_client-3.8.8.ez			    rabbitmq_management_agent-3.8.8.ez
aten-0.5.5.ez				    rabbitmq_mqtt-3.8.8.ez
base64url-0.0.1.ez			    rabbitmq_peer_discovery_aws-3.8.8.ez
cowboy-2.6.1.ez				    rabbitmq_peer_discovery_common-3.8.8.ez
cowlib-2.7.0.ez				    rabbitmq_peer_discovery_consul-3.8.8.ez
credentials_obfuscation-2.2.0.ez	    rabbitmq_peer_discovery_etcd-3.8.8.ez
cuttlefish-2.4.1.ez			    rabbitmq_peer_discovery_k8s-3.8.8.ez
eetcd-0.3.3.ez				    rabbitmq_prelaunch-3.8.8.ez
gen_batch_server-0.8.4.ez		    rabbitmq_prometheus-3.8.8.ez
getopt-1.0.1.ez				    rabbitmq_random_exchange-3.8.8.ez
goldrush-0.1.9.ez			    rabbitmq_recent_history_exchange-3.8.8.ez
gun-1.3.3.ez				    rabbitmq_sharding-3.8.8.ez
jose-1.10.1.ez				    rabbitmq_shovel-3.8.8.ez
jsx-2.11.0.ez				    rabbitmq_shovel_management-3.8.8.ez
lager-3.8.0.ez				    rabbitmq_stomp-3.8.8.ez
observer_cli-1.5.4.ez			    rabbitmq_top-3.8.8.ez
prometheus-4.6.0.ez			    rabbitmq_tracing-3.8.8.ez
ra-1.1.6.ez				    rabbitmq_trust_store-3.8.8.ez
rabbit-3.8.8.ez				    rabbitmq_web_dispatch-3.8.8.ez
rabbit_common-3.8.8.ez			    rabbitmq_web_mqtt-3.8.8.ez
rabbitmq_amqp1_0-3.8.8.ez		    rabbitmq_web_mqtt_examples-3.8.8.ez
rabbitmq_auth_backend_cache-3.8.8.ez	    rabbitmq_web_stomp-3.8.8.ez
rabbitmq_auth_backend_http-3.8.8.ez	    rabbitmq_web_stomp_examples-3.8.8.ez
rabbitmq_auth_backend_ldap-3.8.8.ez	    ranch-1.7.1.ez
rabbitmq_auth_backend_oauth2-3.8.8.ez	    recon-2.5.1.ez
rabbitmq_auth_mechanism_ssl-3.8.8.ez	    stdout_formatter-0.2.4.ez
rabbitmq_aws-3.8.8.ez			    syslog-3.4.5.ez
rabbitmq_consistent_hash_exchange-3.8.8.ez  sysmon_handler-1.3.0.ez
rabbitmq_event_exchange-3.8.8.ez

去和plugins同级的sbin目录下,开启可视化界面

root@39dc5f01ded3:/opt/rabbitmq/plugins# cd ../sbin/
root@39dc5f01ded3:/opt/rabbitmq/sbin# ls
rabbitmq-defaults     rabbitmq-env	rabbitmq-queues  rabbitmq-upgrade
rabbitmq-diagnostics  rabbitmq-plugins	rabbitmq-server  rabbitmqctl
root@39dc5f01ded3:/opt/rabbitmq/sbin# ./rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@39dc5f01ded3:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_prometheus
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@39dc5f01ded3...
The following plugins have been enabled:
  rabbitmq_management

started 1 plugins.

这是在linux的浏览器中访问localhost:15672,即可看到可视化界面,账号密码都是guest。

在这里插入图片描述

参考资料:
[1],【Docker】基于yum安装docker
[2],【Docker】docker-compose安装
[3],RabbitMQ.md
[4],docker-compose 安装rabbitmq

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1531460.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单片机LED灯闪烁

延时函数计算&#xff08;相关代码生成&#xff09;&#xff1a; #include "reg52.h" #include <INTRINS.H> void Delay500ms() //11.0592MHz {unsigned char i, j, k;_nop_();_nop_();i 22;j 3;k 227;do{do{while (--k);} while (--j);} while (--i); }vo…

利用Xinstall,实现安装页面快速拉起App,推广效果倍增!

在移动互联网时代&#xff0c;App推广已成为广告主和开发者的重要任务。然而&#xff0c;面对激烈的市场竞争&#xff0c;如何提升推广效率、洞悉推广效果并衡量广告ROI&#xff0c;成为摆在他们面前的难题。今天&#xff0c;我们将聚焦一个关键环节——安装页面拉起App&#x…

Grid数据增强算法

算法原理 class Grid(object):def __init__(self, d1, d2, rotate1, ratio0.5, mode0, prob0.8):self.d1 d1self.d2 d2self.rotate rotateself.ratio ratioself.mode modeself.st_prob self.prob probdef set_prob(self, epoch, max_epoch):self.prob self.st_prob …

Debezium vs OGG vs Tapdata:如何实时同步 Oracle 数据到 Kafka 消息队列?

随着信息时代的蓬勃发展&#xff0c;企业对实时数据处理的需求逐渐成为推动业务创新和发展的重要驱动力。在这个快速变化的环境中&#xff0c;许多企业选择将 Oracle 数据库同步到 Kafka&#xff0c;以满足日益增长的实时数据处理需求。本文将深入探讨这一趋势的背后原因&#…

Java并发基石ReentrantLock:深入解读其原理与实现

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 在Java的并发编程库中&#xff0c;ReentrantLock是一种非常重要的同步工具&#xff0c;它提供了一种比内置synchronized关键字更加…

基于ArcGIS等多技术融合提升环境、生态、水文、土地、农业、大气等领域科研技术应用

基于ArcGIS等多技术融合提升环境、生态、水文、土地、农业、大气等领域科研技术应用 原文链接https://mp.weixin.qq.com/s?__bizMzUyNzczMTI4Mg&mid2247667012&idx5&snd2c5af65851b06ff7ee14a744c16009e&chksmfa771279cd009b6f8beff1c61c6b3b73087bf93e7d440…

顺序表的动态分配基本操作

#include <stdio.h> #include <stdlib.h>// 顺序表存储空间动态分配 #define InitSize 10 // 顺序表初始长度 typedef int ElemType; // int类型重命名为ElemType&#xff0c;方便后续调整typedef struct { // 定义结构体ElemType *data; // 用静…

“垃圾不落地,捡跑来助力”学雷锋志愿服务暨党支部党日活动

指导思想 紧紧围绕建设和谐社会主题&#xff0c;以创建文明为契机&#xff0c;学习雷锋精神&#xff0c;为人民服务为宗旨&#xff0c;大力开展志愿捡跑活动&#xff0c;激发大家积极参与志愿活动的热情&#xff0c;大力弘扬奉献、友爱、互助、进步的志愿服务精神。 活动启动 …

维度建模理论之事实表

事实表概述 事实表作为数据仓库维度建模的核心&#xff0c;紧紧围绕着业务过程来设计。其包含与该业务过程有关的维度引用&#xff08;维度表外键&#xff09;以及该业务过程的度量&#xff08;通常是可累加的数字类型字段&#xff09;。 事实表特点 事实表通常比较“细长”…

N 皇后00

题目链接 N 皇后 题目描述 注意点 1 < n < 9 解答思路 首先想到的是使用深度优先遍历回溯找到所有的情况&#xff0c;基本思路是&#xff1a;逐行确定Q在该行的位置&#xff0c;且每一行Q都是从第0列到第n - 1列全部考虑&#xff0c;在确定Q在任意一行的某一列时&am…

Java集合Collection之LinkedList

LinkeList LinkedList&#xff08;双向链表&#xff09;是一种常见的线性数据结构&#xff0c;但是并不会按线性的顺序存储数据。它由一系列节点组成&#xff0c;每个节点包含数据部分和一个指向下一个节点的引用。相比于数组&#xff0c;链表具有动态大小、插入和删除效率高的…

练习实践-TLS协议01-Wireshark对https数据的解密

参考来源&#xff1a; https://zhuanlan.zhihu.com/p/36669377 https://blog.csdn.net/u010726042/article/details/53408077 思路&#xff1a; wireshark抓到的https流量包经过了ssl加密&#xff0c;那么我们如何才能查看解密的数据呢&#xff1f;Firefox和Chrome浏览器都支…

Godot 学习笔记(2):信号深入讲解

文章目录 前言相关链接环境信号简单项目搭建默认的信号先在label里面预制接收函数添加信号 自定义无参数信号为了做区分&#xff0c;我们在label新增一个函数 自定义带参数信号Button代码label代码连接信号 自定义复杂参数信号自定义GodotObject类ButtonLabel连接信号 父传子Ca…

国内超好用且免费的 AI 写作工具有哪些?

目前&#xff0c;市面上这类AI工具实在是太多了&#xff0c;比如依托于清华大学开发的智谱清言&#xff0c;或亦是百度的文心一言&#xff0c;还是阿里云的通义千问&#xff0c;这些AI工具在功能是类似的&#xff0c;但是依托于大模型的不同&#xff0c;可能回答的结果迥然不同…

基于springboot+vue的在线互动学习网站

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

(C语言)memcpy函数详解与模拟实现

目录 1. memcpy函数详解 情况一&#xff1a; 情况二&#xff1a; 情况三&#xff1a; 情况四&#xff1a; 情况五&#xff1a; 2. memcpy模拟实现 2.1 重叠情况的讨论&#xff1a; 2.2 memcpy函数超出我们的预期 1. memcpy函数详解 头文件<string.h> 这个函数和…

canoe 以太网配置

canoe vn5620 以太网配置 首先电脑连接上VN5620&#xff0c;配置了License才能进行端口设置 从开始菜单中打开Vector Hardware Configuration 进入到配置页面&#xff0c;会出现VN5620&#xff0c;选择进行右击&#xff0c;点击第一个选项Ethernet device configuration ca…

Open World Object Detection in the Era of Foundation Models

Open World Object Detection in the Era of Foundation Models 摘要介绍相关工作开放词汇物体检测开放世界目标检测类无关的目标检测3.真实世界目标检测基准3.1 数据集细节3.2 基准架构3.3 什么是一个未知对象4. 利用基准模型用于开放世界目标检测4.1 背景4.2 属性生成4.3 属性…

SD3刚发布不久,最新的SD3-Turbo就来了:只需要4步就能超过MidjourneyV6!

StabilityAI刚刚发布了SD3-Turbo的论文&#xff1a;Fast High-Resolution Image Synthesis with Latent Adversarial Diffusion Distillation。 SD3-Turbo采用了一种新的蒸馏方法&#xff1a;Latent Adversarial Diffusion Distillation (LADD)&#xff0c;与基于像素的ADD&am…

elment-ui el-tabs组件 每次点击后 created方法都会执行2次

先看错误的 日志打印: 错误的代码如下: 正确的日志打印: 正确的代码如下: 前言: 在element-ui的tabs组件中,我们发现每次切换页面,所有的子组件都会重新渲染一次。当子页面需要发送数据请求并且子页面过多时,这样会过多的占用网络资源。这里我们可以使用 v-if 来进行…