Docker RabbitMQ 安装镜像与使用命令

按照阿里云的操作文档安装 docker:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

这里仅写 Windows 版的,其他版本见上面的链接

1. 安装/升级Docker客户端
对于Windows 10以下的用户,推荐使用Docker Toolbox

Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

对于Windows 10以上的用户 推荐使用Docker for Windows

Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/

2. 配置镜像加速器
针对安装了Docker Toolbox的用户,您可以参考以下配置步骤:

创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址。

docker-machine create --engine-registry-mirror=https://fnuvamgc.mirror.aliyuncs.com -d virtualbox default
查看机器的环境配置,并配置到本地,并通过Docker客户端访问Docker服务。

docker-machine env default
eval "$(docker-machine env default)"
docker info
针对安装了Docker for Windows的用户,您可以参考以下配置步骤:

在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:

{
  "registry-mirrors": ["https://fnuvamgc.mirror.aliyuncs.com"]
}
编辑完成后点击 Apply 保存按钮,等待Docker重启并应用配置的镜像加速器。

注意
Docker for Windows 和 Docker Toolbox互不兼容,如果同时安装两者的话,需要使用hyperv的参数启动。

docker-machine create --engine-registry-mirror=https://fnuvamgc.mirror.aliyuncs.com -d hyperv default
Docker for Windows 有两种运行模式,一种运行Windows相关容器,一种运行传统的Linux容器。同一时间只能选择一种模式运行。

运行docker。如果是 windows 系统的话,直接安装客户端,启动docker即可。如果是 linux 系统执行以下命令即可。

systemctl start docker

查看进程

ps -ef | grep docker

搜索镜像。比如搜索 rabbitmq

docker search rabbitmq

拉取镜像到本地

docker pull rabbitmq

查看已经安装的镜像

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
rabbitmq latest d445c0adc9a5 13 months ago 220MB

运行 rabbitmq

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq

查询运行中的容器

docker ps

查询全部容器

docker ps -a 

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06a9986bb9fe rabbitmq “docker-entrypoint.s…” 12 minutes ago Up 12 minutes 4369/tcp, 0.0.0.0:5672->5672/tcp, 5671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp rabbit

上面开头的 CONTAINER ID 下面的 06a9986bb9fe 就是容器的 ID

之前配置运行过了的话,直接启动容器即可

docker start 容器ID
docker stop 容器ID
docker restart 容器ID

查看容器的详细信息

docker inspect 容器id

新建容器时设置为自启动

docker run -d --restart=always --name my-rabbit -p 15672:15672 -p 5672:5672 rabbitmq

为已存在的容器配置自启动

docker update --restart=always 容器id 或 容器名称

取消自启动

docker update --restart=no 容器id 或 容器名称

批量设置自启动

docker update --restart=always $(docker ps -aq)

进入容器终端

docker exec -it 容器ID /bin/bash

进入终端后,使用命令比如开启 rabbitmq 的 web 管理界面

rabbitmq-plugins enable rabbitmq_management

docker 启动 rabbitmq

单节点启动

docker run -it --rm -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management

这是官方的例子

多节点启动

普通集群

#节点一,主节点,创建-v映射目录
docker run -d --hostname rabbit_host1 --name rabbitmq1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_NODENAME=rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password  -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' --privileged=true -v /usr/local/rabbitmq/1/lib:/var/lib/rabbitmq -v /usr/local/rabbitmq/1/log:/var/log/rabbitmq rabbitmq:management

#节点二,创建-v映射目录
docker run -d --hostname rabbit_host2 --name rabbitmq2  -p 15673:15672 -p 5673:5672 --link rabbitmq1:rabbit_host1 -e RABBITMQ_NODENAME=rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' --privileged=true -v /usr/local/rabbitmq/2/lib:/var/lib/rabbitmq -v /usr/local/rabbitmq/2/log:/var/log/rabbitmq rabbitmq:management

#节点三,创建-v映射目录
docker run -d --hostname rabbit_host3 --name rabbitmq3 -p 15674:15672 -p 5674:5672 --link rabbitmq1:rabbit_host1 --link rabbitmq2:rabbit_host2 -e RABBITMQ_NODENAME=rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' --privileged=true -v /usr/local/rabbitmq/3/lib:/var/lib/rabbitmq -v /usr/local/rabbitmq/3/log:/var/log/rabbitmq rabbitmq:management

参数说明:

--hostname 自定义Docker容器的 hostname

--link 容器之间连接,link不可或缺,使得三个容器能互相通信

--privileged=true 使用该参数,container内的root拥有真正的root权限,否则容器出现permission denied

-v 宿主机和容器路径映射

参数 RABBITMQ_NODENAME,缺省 Unix*: rabbit@$HOSTNAME
参数 RABBITMQ_DEFAULT_USER=admin
参数 RABBITMQ_DEFAULT_PASS=xdclass.net168

Erlang Cookie 值必须相同,也就是一个集群内 RABBITMQ_ERLANG_COOKIE 参数的值必须相同, 相当于不同节点之间通讯的密钥,erlang.cookie是erlang的分布式token文件,集群内各个节点的erlang.cookie需要相同,才可以互相通信

上面是启动了三个节点,就是三个rabbitmq,但仍没有形成集群。

配置普通集群
#节点一配置集群
docker exec -it rabbitmq1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

#节点二加入集群,--ram是以内存方式加入,忽略该参数默认为磁盘节点。
docker exec -it rabbitmq2 bash
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@rabbit_host1
rabbitmqctl start_app
exit

#节点三加入集群,--ram是以内存方式加入,忽略该参数默认为磁盘节点。
docker exec -it rabbitmq3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit_host1
rabbitmqctl start_app
exit

#查看集群节点状态,配置启动了3个节点,1个磁盘节点和2个内存节点
rabbitmqctl cluster_status

上述步骤完成后就配置好普通集群了。

集群分为两类:普通集群和镜像集群。

相同点:都拥有各个节点的元数据信息。

不同点:镜像集群会复制各个节点的交换机、队列和信息。而普通集群仅仅拥有交换机和队列,信息不会进行复制,即拥有信息的节点一旦宕机,集群内部就无法消费该信息。

配置镜像集群

去到rabbitmq控制台,一般是:ip地址:15672

image-20210522091555580

Admin->Policies

image-20210522091718524

参数说明:

ha-mode:同步节点模式
- all:全部
- exactly:设置同步节点数
- nodes:设置特定同步节点,用配置ha-params说明
ha-sync-mode:同步模式
- manual:手动
- automatic:自动
一般如同所示设置即可

完成后,就完成rabbitmq多节点的部署了。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化平台,可以轻松地部署和管理应用程序。RabbitMQ是一个开源的消息队列系统,用于实现应用程序之间的异步通信。下面是安装使用DockerRabbitMQ的基本步骤: 1. 首先,确保已经安装DockerDocker Compose。可以在官方网站上找到适合你操作系统的安装指南。 2. 创建一个新的目录,并在其中创建一个名为`docker-compose.yml`的文件。 3. 在`docker-compose.yml`文件中,添加以下内容: ``` version: '3' services: rabbitmq: image: rabbitmq:management ports: - 5672:5672 - 15672:15672 volumes: - ./data:/var/lib/rabbitmq environment: RABBITMQ_DEFAULT_USER: your_username RABBITMQ_DEFAULT_PASS: your_password ``` 这个配置文件使用RabbitMQ的官方镜像,并启用了RabbitMQ管理插件。它还将容器内部的5672和15672端口映射到主机上,用于AMQP协议和管理界面的访问。 4. 将`your_username`和`your_password`替换为你自己的用户名和密码。 5. 在终端中,导航到包含`docker-compose.yml`文件的目录,并执行以下命令启动RabbitMQ容器: ``` docker-compose up -d ``` 这将会下载RabbitMQ镜像并启动容器使用`-d`参数可以在后台运行容器。 6. 等待一段时间,直到容器启动完毕。你可以使用以下命令检查容器的状态: ``` docker-compose ps ``` 如果一切顺利,你应该看到一个名为`rabbitmq`的容器正在运行。 7. 现在,你可以通过访问`http://localhost:15672`来打开RabbitMQ管理界面。使用之前设置的用户名和密码进行登录。 从这里开始,你可以创建队列、交换机和绑定,并发送和接收消息。具体的RabbitMQ使用方法可以参考官方文档。 希望这个简单的指南对你有帮助!如果你有任何疑问,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值