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

这篇具有很好参考价值的文章主要介绍了【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 - 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。

docker-compose rabbitmq,Docker,RabbitMQ,rabbitmq,docker,分布式

参考资料:
[1],【Docker】基于yum安装docker
[2],【Docker】docker-compose安装
[3],RabbitMQ.md
[4],docker-compose 安装rabbitmq文章来源地址https://www.toymoban.com/news/detail-857255.html

到了这里,关于【RabbitMQ】【Docker】基于docker-compose构建rabbitmq容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Cento7 Docker-compose安装RabbitMQ

      RabbitMQ是一个消息中间件,是用Erlang语言编写的。RabbitMQ据说具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用。接下来我们就以docker形式安装。 1.先安装docker环境 RabbitMQ的docker-compose.yml的文件内容如下: 默认

    2024年02月11日
    浏览(31)
  • 用docker-compose部署Rabbitmq三节点集群部署方案

    主机名 IP node1 10.4.2.10 node2 10.4.2.59 node3 10.4.2.134 (1) 在/root目录下先创建一个rabitmq目录用于存放文件 mkdir  rabitmq (2)修改主机名和域名解析hosts文件 (1)修改主机名 hostnamectl set-hostname  node1    hostnamectl set-hostname  node2 hostnamectl set-hostname  node3 node1  node2   node3 分别对应

    2024年02月04日
    浏览(38)
  • docker-compose安装和使用(自启、redis、mysql、rabbitmq、activemq、es、nginx、java应用)

    1.在线安装docker-compose: 参考官网:https://docs.docker.com/compose/install/other/ docker-compose安装及简单入门 [Docker] docker-compose使用教程 Docker系列教程22-docker-compose.yml常用命令 2、离线安装docker-compose: 参考:Docker - 离线安装 docker-compose(以CentOS系统为例) (1)首先访问 docker-compose 的

    2024年02月05日
    浏览(43)
  • Docker-Compose构建lnmp

    宿主机:192.168.188.17,安装docker、docker-compose 准备以下压缩包和配置文件nginx-1.12.0.tar.gz、wordpress-4.9.4-zh_CN.tar.gz、nginx.conf、mysql-boost-5.7.20.tar.gz、my.cnf、php-7.1.10.tar.bz2、php-fpm.conf、php.ini、www.conf curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose- uname -s - uname -m -o /

    2024年01月18日
    浏览(37)
  • docker-compose 构建 Kafka 容器

    在终端中创建一个名为 kafka 的目录,并进入该目录: 创建一个名为 docker-compose-kafka.yml 的文件并打开它。将以下代码复制到文件中: 这份配置使用了 Docker Compose,定义了两个服务 Zookeeper 和 Kafka。 Zookeeper 服务定义: 使用 wurstmeister/zookeeper 镜像; 将容器的 2181 端口映射到宿

    2024年02月10日
    浏览(55)
  • Docker构建Java服务 docker-compose部署微服务

    目录 1.  安装Docker前置准备 设置Docker开机自启动 配置Docker阿里云镜像加速 安装Docker-compose 2、镜像拉取 3、创建docker-comepose.yaml文件 4.  创建数据映射容器挂载目录 ,以下是nacos   xxl-job-admin sql脚本文件 5.  docker-comepose 部署 1. 安装Docker前置准备 设置Docker开机自启动 配置Do

    2024年04月16日
    浏览(29)
  • 使用Docker-compose快速构建Nacos服务

    在微服务架构中,服务的注册与发现扮演着至关重要的角色。Nacos(Naming and Configuration Service)是阿里巴巴开源的服务注册与发现组件,致力于支持动态配置管理和服务发现。最近,一位朋友表达了对搭建一套Nacos开发环境的兴趣。先前,我们曾发布了一篇有关在Linux上直接部

    2024年01月24日
    浏览(41)
  • 如何使用docker-compose.yml构建镜像?

    使用 docker-compose.yml 文件来构建镜像,你需要在该文件中对你的服务进行定义,然后使用 docker-compose build 命令。 假设你有一个 docker-compose.yml 文件,它定义了一个名为 “web” 的服务,并指定了构建该服务所需的 Dockerfile 的路径,如下所示: 在这个例子中, build: . 指出 Dock

    2024年02月12日
    浏览(64)
  • 实战:win10安装docker并用docker-compose构建运行容器

    Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。但是某些时候我们没有Linux环境怎么破?为了解决这个问题我们可以用VM虚拟机上安装Linux系统进行处理。然而对于我们的WIN10系统自带Hyper-V虚拟机,简直不要太爽。我们可以直接开启Hyper-V服务,并安

    2024年02月12日
    浏览(41)
  • 【Docker-compose】基于Docker-compose创建LNMP环境并运行Wordpress网站平台

    参见使用Docker构建LNMP环境并运行Wordpress网站平台 Docker-Compose将所管理的容器分为三层,分别是 项目(project)、服务(service)以及容器(container) 。 Docker-Compose运行目录下的所有文件组成一个项目, 若无特殊指定项目名即为当前目录名 。 一个工程当中可包含多个服务,每个

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包