GVKun编程网logo

docker部署rabbitmq(docker部署rabbitmq集群)

15

这篇文章主要围绕docker部署rabbitmq和docker部署rabbitmq集群展开,旨在为您提供一份详细的参考资料。我们将全面介绍docker部署rabbitmq的优缺点,解答docker部署

这篇文章主要围绕docker部署rabbitmqdocker部署rabbitmq集群展开,旨在为您提供一份详细的参考资料。我们将全面介绍docker部署rabbitmq的优缺点,解答docker部署rabbitmq集群的相关问题,同时也会为您带来CentOS-Docker 安装 RabbitMQ 集群 (rabbitmq:3.7.16-management)、CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)、CentOS-Docker安装RabbitMQ集群(rabbitmq:3.8.9-management)、centos7 docker 部署rabbitmq集群的实用方法。

本文目录一览:

docker部署rabbitmq(docker部署rabbitmq集群)

docker部署rabbitmq(docker部署rabbitmq集群)

一、docker上部署并启动RabbitMQ

1、查询rabbitmq镜像
#docker search rabbitmq:management

2、拉取rabbitmq镜像
#docker pull rabbitmq:management

3、创建并启动容器
(1)创建和启动
#docker run -d --hostname my-rabbit --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management

(2)创建和启动(同时设置用户和密码) 
#docker run -d --hostname my-rabbit --name rabbitmq --restart always -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -v /etc/localtime:/etc/localtime:ro -v /usr/local/rabbitmq/data:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

注意:
--hostname:指定容器主机名称

--name:指定容器名称
-p:将mq端口号映射到本地
15672:控制台端口号 
5672:应用访问端口号
控制台端口用于管理rabbitmq,应用访问端口号为应用程序访问

4、查看rabbitmq运行状况
#docker logs rabbit

 

CentOS-Docker 安装 RabbitMQ 集群 (rabbitmq:3.7.16-management)

CentOS-Docker 安装 RabbitMQ 集群 (rabbitmq:3.7.16-management)

准备工作

1. 机器资源 (分别安装 docker 环境)

建议机器配置: centos7.x 4G 及以上 100GB 及以上 2 核及以上

192.168.1.101
192.168.1.102
192.168.1.103

2. 分别配置 hosts 文件,追加
vim /home/rabbitmq/hosts

192.168.1.101 rabbit1 rabbit1
192.168.1.102 rabbit2 rabbit2
192.168.1.103 rabbit3 rabbit3

下载镜像(每台机器)

$ docker pull rabbitmq:3.7.16-management

创建目录 (每台机器)

mkdir -p /home/rabbitmq

 

运行镜像(每台机器)

创建容器 (rabbit1)

docker run --restart=unless-stopped -h rabbit1 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit1 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_ERLANG_COOKIE=''xxx_2019''
rabbitmq:3.7.16-management

创建容器 (rabbit2)

docker run --restart=unless-stopped -h rabbit2 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit2 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_ERLANG_COOKIE=''xxx_2019''
rabbitmq:3.7.16-management

创建容器 (rabbit3)

docker run --restart=unless-stopped -h rabbit3 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit3 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_ERLANG_COOKIE=''xxx_2019''
rabbitmq:3.7.16-management

参数说明
#容器后台运行
-d
#容器的主机名为 rabbit_master,容器内部的 hostname
--hostname rabbit_master
#将宿主机目录 /home/rabbitmq 挂载到容器的 /var/lib/rabbitmq 目录。z 是一个标记,在 selinux 环境下使用。
-v /home/rabbitmq:/var/lib/rabbitmq:z
#设置 rabbitmq 的 cookie 可以自定义为其他文本,三个容器保持一致即可。
-e RABBITMQ_ERLANG_COOKIE=''xxx_2019''

 

绑定集群

将 myrabbit1 节点重置

docker exec -it myrabbit1 bash

rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl start_app

将 myrabbit2 节点加入集群

docker exec -it myrabbit2 bash

rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit
@rabbit1 && \
rabbitmqctl start_app

将 myrabbit3 节点加入集群

docker exec -it myrabbit3 bash

rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit
@rabbit2 && \
rabbitmqctl start_app

查询集群状态

rabbitmqctl cluster_status

故障节点的处理

docker exec -it rabbit2 /bin/bash

rabbitmqctl stop_app

#在一个正常的节点上移除有问题的节点

docker exec -it rabbit1 /bin/bash

rabbitmqctl forget_cluster_node rabbit@rabbit2

 

使用说明

springboot 集成

spring.rabbitmq.addresses=192.168.1.101:5672,192.168.1.102:5672,192.168.1.103:5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456
spring.rabbitmq.virtual-host=/

#支持手动 ack 模式
spring.rabbitmq.listener.simple.acknowledge-mode=manual
#每个并发的预取条数
spring.rabbitmq.listener.simple.prefetch=10
#并发数
spring.rabbitmq.listener.simple.concurrency=3
#最大并发数
spring.rabbitmq.listener.simple.max-concurrency=10
spring.rabbitmq.listener.direct.acknowledge-mode=manual

队列模式分为普通模式和镜像模式,集群模式建议直接使用镜像队列

1. 全部节点镜像策略创建

2. 指定节点数镜像策略创建

参数说明

Pattern 模式:"^" 为全部;"^all-" 为所有 all - 开头

Priority 优先级:建议 10,比较耗费资源

Definition 定义参数:

ha-mode=all 或 exactly;

ha-sync-mode=automatic;

ha-params=2(ha-mode=exactly);

 

CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)

CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)

准备工作

1.机器资源(分别安装docker环境)

建议机器配置: centos7.x 4G及以上 100GB及以上 2核及以上

192.168.1.101
192.168.1.102
192.168.1.103

2.分别配置hosts文件,追加
$ vim /home/rabbitmq/hosts

192.168.1.101 rabbit1 rabbit1
192.168.1.102 rabbit2 rabbit2
192.168.1.103 rabbit3 rabbit3

下载镜像(每台机器)

$ docker pull  rabbitmq:3.7.16-management

创建目录 (每台机器)

$ mkdir -p /home/rabbitmq

 

运行镜像(每台机器)

创建容器(rabbit1)

$ docker run --restart=unless-stopped -h rabbit1 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit1 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_ERLANG_COOKIE='xxx_2019'  rabbitmq:3.7.16-management

创建容器(rabbit2)

$ docker run --restart=unless-stopped -h rabbit2 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit2 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_ERLANG_COOKIE='xxx_2019'  rabbitmq:3.7.16-management

创建容器(rabbit3)

$ docker run --restart=unless-stopped -h rabbit3 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit3 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_ERLANG_COOKIE='xxx_2019'  rabbitmq:3.7.16-management

参数说明
#容器后台运行
-d
#容器的主机名为 rabbit_master,容器内部的hostname
--hostname rabbit_master
#将宿主机目录/home/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
-v /home/rabbitmq:/var/lib/rabbitmq:z
#设置rabbitmq的cookie可以自定义为其他文本,三个容器保持一致即可。
-e RABBITMQ_ERLANG_COOKIE='xxx_2019'

 

绑定集群

将myrabbit1节点重置

$ docker exec -it myrabbit1 bash

$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl start_app

将myrabbit2节点加入集群

$ docker exec -it myrabbit2 bash

$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit@rabbit1 && \
rabbitmqctl start_app

将myrabbit3节点加入集群

$ docker exec -it myrabbit3 bash

$ rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit@rabbit2 && \
rabbitmqctl start_app

查询集群状态

$ rabbitmqctl cluster_status

故障节点的处理

$ docker exec -it rabbit2 /bin/bash

$ rabbitmqctl stop_app

#在一个正常的节点上移除有问题的节点

$ docker exec -it rabbit1 /bin/bash

$ rabbitmqctl forget_cluster_node rabbit@rabbit2

 

使用说明

springboot集成

spring.rabbitmq.addresses=192.168.1.101:5672,192.168.1.102:5672,192.168.1.103:5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456
spring.rabbitmq.virtual-host=/

#支持手动ack模式
spring.rabbitmq.listener.simple.ackNowledge-mode=manual
#每个并发的预取条数
spring.rabbitmq.listener.simple.prefetch=10
#并发数
spring.rabbitmq.listener.simple.concurrency=3
#最大并发数
spring.rabbitmq.listener.simple.max-concurrency=10
spring.rabbitmq.listener.direct.ackNowledge-mode=manual

队列模式分为普通模式和镜像模式,集群模式建议直接使用镜像队列

1.全部节点镜像策略创建

2.指定节点数镜像策略创建

参数说明

Pattern 模式:"^"为全部;"^all-"为所有all-开头

Priority 优先级:建议10,比较耗费资源

DeFinition 定义参数:

ha-mode=all 或 exactly;

ha-sync-mode=automatic;

ha-params=2(ha-mode=exactly);

 

CentOS-Docker安装RabbitMQ集群(rabbitmq:3.8.9-management)

CentOS-Docker安装RabbitMQ集群(rabbitmq:3.8.9-management)

准备工作

1.机器资源(分别安装docker环境)

建议机器配置: centos7.x 4G及以上 100GB及以上 2核及以上

192.168.1.101
192.168.1.102
192.168.1.103

2.分别配置hosts文件,追加
vim /home/rabbitmq/hosts

192.168.1.101 rabbit1 rabbit1
192.168.1.102 rabbit2 rabbit2
192.168.1.103 rabbit3 rabbit3

下载镜像(每台机器)

$ docker pull rabbitmq:3.8.9-management

创建目录 (每台机器)

mkdir -p /home/rabbitmq

 

运行镜像(每台机器)

创建容器(rabbit1)

docker run --restart=unless-stopped -h rabbit1 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit1 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 
rabbitmq:3.8.9-management

创建容器(rabbit2)

docker run --restart=unless-stopped -h rabbit2 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit2 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \

rabbitmq:3.8.9-management

创建容器(rabbit3)

docker run --restart=unless-stopped -h rabbit3 -d -p 5672:5672 -p 15672:15672 -p 25672:25672 -p 4369:4369 --name myrabbit3 \
-v /home/rabbitmq:/var/lib/rabbitmq:z -v /home/rabbitmq/hosts:/etc/hosts \

rabbitmq:3.8.9-management

参数说明
#容器后台运行
-d
#容器的主机名为 rabbit1,容器内部的hostname
-h rabbit1
#将宿主机目录/home/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
-v /home/rabbitmq:/var/lib/rabbitmq:z
#设置rabbitmq的cookie可以自定义为其他文本,三个容器保持一致即可。
-e RABBITMQ_ERLANG_COOKIE=''xxx_2020''    参数已过期,需要修改erlang.cookie

机器分别配置并重启容器(erlang.cookie)

$ chmod 600 /home/rabbitmq/.erlang.cookie

$ vim /home/rabbitmq/.erlang.cookie

xxx_2020

绑定集群

将myrabbit1节点重置

docker exec -it myrabbit1 bash

rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl start_app

将myrabbit2节点加入集群

docker exec -it myrabbit2 bash

rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit
@rabbit1 && \
rabbitmqctl start_app

将myrabbit3节点加入集群

docker exec -it myrabbit3 bash

rabbitmqctl stop_app && \
rabbitmqctl reset && \
rabbitmqctl join_cluster rabbit
@rabbit2 && \
rabbitmqctl start_app

查询集群状态

rabbitmqctl cluster_status

故障节点的处理

docker exec -it rabbit2 /bin/bash

rabbitmqctl stop_app

#在一个正常的节点上移除有问题的节点

docker exec -it rabbit1 /bin/bash

rabbitmqctl forget_cluster_node rabbit@rabbit2

 

使用说明

springboot集成

spring.rabbitmq.addresses=192.168.1.101:5672,192.168.1.102:5672,192.168.1.103:5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456
spring.rabbitmq.virtual-host=/

#支持手动ack模式
spring.rabbitmq.listener.simple.acknowledge-mode=manual
#每个并发的预取条数
spring.rabbitmq.listener.simple.prefetch=10
#并发数
spring.rabbitmq.listener.simple.concurrency=3
#最大并发数
spring.rabbitmq.listener.simple.max-concurrency=10
spring.rabbitmq.listener.direct.acknowledge-mode=manual

队列模式分为普通模式和镜像模式,集群模式建议直接使用镜像队列

1.全部节点镜像策略创建

2.指定节点数镜像策略创建

参数说明

Pattern 模式:"^"为全部;"^all-"为所有all-开头

Priority 优先级:建议10,比较耗费资源

Definition 定义参数:

ha-mode=all 或 exactly;

ha-sync-mode=automatic;

ha-params=2(ha-mode=exactly);

 

centos7 docker 部署rabbitmq集群

centos7 docker 部署rabbitmq集群

1>拉取ra'bbitmq

docker pull rabbitmq:3.6.15-management

2>创建rabbitmq

mkdir rabbitmq

3>创建3个mq运行容器

docker run -d --hostname rabbit1 --name myrabbit1 --log-opt max-size=10m --log-opt max-file=3 -v /docker/rabbitmq/myrabbit1:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

docker run -d --hostname rabbit2 --name myrabbit2 --log-opt max-size=10m --log-opt max-file=3 -v /docker/rabbitmq/myrabbit2:/var/lib/rabbitmq -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

docker run -d --hostname rabbit3 --name myrabbit3 --log-opt max-size=10m --log-opt max-file=3 -v /docker/rabbitmq/myrabbit3:/var/lib/rabbitmq -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

注释:

-d
#容器后台运行
--hostname rabbit1
#容器的主机名为 rabbit1,容器内部的hostname
--name rabbit1
#容器名为rabbit39,在宿主机上运行“docker ps”命令时显示的名称
--log-opt max-size=10m
#日志文件单个最大10M
--log-opt max-file=3
#日志文件最多保留3个
-v /data/rabbitmq:/var/lib/rabbitmq:z
#将宿主机目录/data/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
-v /opt/rabbitmq/hosts:/etc/hosts
#略
-e RABBITMQ_DEFAULT_USER=user01
#设置rabbitmq默认用户为user01
-e RABBITMQ_DEFAULT_PASS=password01
#设置rabbitmq默认密码为password01
-e RABBITMQ_ERLANG_COOKIE='secret cookie here'
#设置rabbitmq的cookie为“secret cookie here”,可以自定义为其他文本,三个容器保持一致即可。
reg.onlymin.com/public/rabbitmq:3.6.15-management
#使用reg.onlymin.com/public/rabbitmq:3.6.15-management这个镜像

4>集群

docker exec myrabbit1 bash -c "rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl start_app && rabbitmqctl cluster_status"

docker exec myrabbit2 bash -c "rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl join_cluster --ram rabbit@rabbit1 && rabbitmqctl start_app"

docker exec myrabbit3 bash -c "rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl join_cluster --ram rabbit@rabbit1 && rabbitmqctl start_app"

5>访问:http://服务器IP:15672,记得开放端口156722

6>进入rabbitmq重新设置登录名和密码

docker exec -it myrabbit1 bash 

rabbitmqctl add_user 账号名 账号密码

rabbitmqctl set_user_tags hycore administrator //设置为管理员

rabbitmqctl delete_user guest //设置默认的guest账号

 

关于docker部署rabbitmqdocker部署rabbitmq集群的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于CentOS-Docker 安装 RabbitMQ 集群 (rabbitmq:3.7.16-management)、CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)、CentOS-Docker安装RabbitMQ集群(rabbitmq:3.8.9-management)、centos7 docker 部署rabbitmq集群的相关知识,请在本站寻找。

本文标签: