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

本文通过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 - CommunityVersion:           25.0.3API version:       1.44Go version:        go1.21.6Git commit:        4debf41Built:             Tue Feb  6 21:17:10 2024OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          25.0.3API version:      1.44 (minimum version 1.24)Go version:       go1.21.6Git commit:       f417435Built:            Tue Feb  6 21:16:08 2024OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.28GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bbrunc:Version:          1.1.12GitCommit:        v1.1.12-0-g51d5e94docker-init:Version:          0.19.0GitCommit:        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: alwaysimage: daocloud.io/library/rabbitmq:3.8.8volumes:- ./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_managementrabbitmq_management_agentrabbitmq_prometheusrabbitmq_web_dispatch
Applying plugin configuration to rabbit@39dc5f01ded3...
The following plugins have been enabled:rabbitmq_managementstarted 1 plugins.

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

在这里插入图片描述

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

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

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

相关文章

【大屏设计】如何进行软件系统网站大屏页面设计?不限于智慧城市、物联网、电商、园区领域

【大屏设计】如何进行软件系统网站大屏页面设计?不限于智慧城市、物联网、电商、园区领域 一、什么是网站大屏设计二、网站大屏设计原型素材三、网站大屏设计设计素材四、他山之石 一、什么是网站大屏设计 网站大屏设计是网站设计中至关重要的一部分,因…

Ubuntu介绍

Ubuntu,这个源自南非祖鲁语和科萨语的词汇,意为“人类之间的仁慈和善良”。在计算机领域,Ubuntu已经成为了一个广为人知的开源操作系统,它以其易用性、稳定性和强大的社区支持而闻名于世。Ubuntu不仅仅是一个操作系统,…

数据库笔记

1、服务端架构分层:网关层管网络,应用层管业务,存储层管数据 2、Mysql单表数据量超百万查询慢,超千万查不动了 3、高级需要你熟练地使用各种数据库 是多读写少,还是反过来分布式扩展能力解决单机存储的瓶颈问题 4、关…

8种Kubernetes集群中Pod处于 Pending状态的故障排除方法

文章目录 一、Pod与容器二、Pod的阶段(状态)三、Pod 状态故障排除3.1 检查 Pod 事件3.2 检查资源可用性3.3 检查污点和容忍度3.4 检查节点亲和性设置3.5 检查持久卷声明3.6 检查配额和限制3.7 验证 Pod 和容器映像3.8 分析调度程序日志 四、用于排查 Pen…

Linux 常用命令 cat

Linux 常用命令 cat 作用 用于连接文件并打印到标准输出设备上。也可用于创建文件、显示文件内容等操作。 用法 cat [OPTION]... [FILE]...,参数说明如下: 当未指定 FILE 参数,或者 FILE 参数为 -,则从标准输入读取 -A, --show…

Django动态路由实例

Django动态路由实例 先说需求&#xff1a; 比如我前端有两个按钮&#xff0c;点击按钮1跳转到user1的用户信息页面&#xff0c;按钮2跳转user2用户信息页面&#xff0c;但是他俩共用同一个视图层 直接上代码 路由层 urlpatterns [path(user/<str:username>/, views…

图神经网络学习00--distill论文入手

distill distill是网页形式的期刊&#xff0c;其中有许多非常棒的可视化讲解&#xff0c;力求把晦涩难懂的研究工作讲得通俗易懂。 非常适合初学者学习。 其中有两篇发布于Sept.2,2021的有关图神经网络的博客&#xff0c;文章脉络清晰。 A Gentle Introduction to Graph Neural…

微软的TaskWeaver框架

微软的TaskWeaver框架是一个功能强大的工具&#xff0c;它的应用场景非常广泛。以下是几个具体的应用场景及其应用方式的简要介绍&#xff1a; 数据分析与可视化&#xff1a; 应用场景&#xff1a;企业需要对大量数据进行深度分析&#xff0c;以洞察市场趋势、优化业务决策。 …

Swift 结构化并发之全局 Actor 趣谈

概览 在 Swift 结构化并发构成的体系中,一个称为“演员”(Actor)的成员扮演了非常重要的角色,它被用来隔离和同步执行中的数据。 除了普通 Actor 以外,还有一个全局“演员”(Global Actor)的概念,它是做什么的?又有什么与众不同的长处呢? 在本篇博文中,您将学到如…

通过ETL工具快速实现单据同步

ETLCloud介绍 ETLCloud是一款旨在解决企业数据集成挑战的最新一代平台&#xff0c;它集成了离线数据集成ETL、ELT、CDC实时数据集成、编排调度和数据服务API等功能&#xff0c;形成了一体化的DataOps数据集成平台。该平台提供私有化部署以及云原生架构&#xff0c;能够满足企业…

二分查找 python

1.非递归写法 def binary_search(arr, target):left, right 0, len(arr) - 1while left < right:mid (left right) // 2if arr[mid] target: #如果相等return midelif arr[mid] < target:#当中值小于目标值 说明应该在右边查找了left mid 1 #把左索引 变成mid1els…

设计模式深度解析:适配器模式与桥接模式-灵活应对变化的两种设计策略大比拼

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 适配器模式与桥接模式-灵活应对变化的两种设计策略大比拼 探索设计模式的魅力&#xff1a;深入了…

nodejs的geoip-lite库

介绍 geoip-lite是一个用于获取IP地址地理位置信息的轻量级Node.js库。它使用MaxMind的GeoLite数据库&#xff0c;提供了方便的方式来查询IP地址对应的国家、省份和城市等地理位置信息。geoip-lite库的主要特点包括&#xff1a; 轻量级&#xff1a; geoip-lite是一个轻量级的…

ElasticSearch - 基本操作

前言 本文记录 ES 的一些基本操作&#xff0c;就是对官方文档的一些整理&#xff0c;按自己的习惯重新排版&#xff0c;凑合着看。官方的更详细&#xff0c;建议看官方的。 下文以 books 为索引名举例。 新增 添加单个文档 (没有索引会自动创建) POST books/_doc {"n…

Wpf-自定义控件波纹Button

使用用户控件&#xff0c;继承Button 前端代码 <Button x:Class"WpfApp1.SuperButton"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://sche…

(持续更新中)DRF相关

Resquests&#xff08;请求&#xff09; 属性 .data request.data 返回请求正文的解析内容。它包括所有解析的内容, 包括 文件或非文件 输入。 它支持解析除POST之外的HTTP方法的内容&#xff0c;这意味着你可以访问PUT和PATCH请求的内容。 它支持REST framework灵活的请求解…

Linux--Ubuntu安装

Linux操作系统时程序员必须要学的操作系统。接下来我们就来看一下Linux操作系统是如何安装的 我们在 Vmware 虚拟机中安装 linux 系统&#xff0c;所以需要先安装 vmware 软件&#xff0c;然后再 安装 Linux 系统。 一.所需安装文件&#xff1a; Vmware 下载地址(现在最新版的…

羊大师揭秘,孩子适不适合喝羊奶?

羊大师揭秘&#xff0c;孩子适不适合喝羊奶&#xff1f; 羊奶&#xff0c;这个古老而珍贵的营养饮品&#xff0c;近年来在家长们中间逐渐走红。它以其独特的营养价值和口感受到了众多家庭的青睐。但是&#xff0c;面对市面上琳琅满目的羊奶产品&#xff0c;家长们常常陷入选择…

三连杆滑块机构运动学仿真 | 【Matlab源码+理论公式文本】|曲柄滑块 | 曲柄连杆 | 机械连杆

【程序简介】&#x1f4bb;&#x1f50d; 本程序通过matlab实现了三连杆滑块机构的运动学仿真编程&#xff0c;动态展现了三连杆机构的运动动画&#xff0c;同时给出了角位移、角速度和角加速度的时程曲线&#xff0c;除了程序本身&#xff0c;还提供了机构运动学公式推导文档…

网络——入门基础

目录 协议 网络协议 OSI七层模型 网络传输基本流程 网络传输流程图 局域网通信 数据包的封装和解包 广域网通信 网络地址管理 IP地址 MAC地址 协议 关于什么是局域网&#xff0c;什么是广域网&#xff0c;我这里就不过多赘述了&#xff0c;我们直接来谈一下什么…