Docker安装Rabbitmq实现容器集群主从节点
# 设置yum源yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum makecache fast# 安装Docker-CEyum -...
# 设置yum源
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
# 安装Docker-CE
yum -y install docker-ce
#设置开机自启动
systemctl enable docker
systemctl restart docker
#验证
docker run hello-world
#首先我们现在在服务器上安装主Rabbitmq容器主节点rabbitmq-master
#指定rabbitmq版本、这边与开发确认后获取最新版本
docker pull rabbitmq
#期望容器中的配置文件、数据、日志再容器异常关闭或主动删除后保留,则需要配置挂载
#容器对应配置文件路径都是从https://hub.docker.com/_/rabbitmq上对应的官网操作中确认过的
mkdir -p /data/rabbitmq-master/{conf,data,logs}
#这边我用到了官方的配置文件,通过配置文件添加web管理端插件,
echo "[rabbitmq_management]." > /data/rabbitmq-master/conf/enabled_plugins
cat > /data/rabbitmq-master/conf/rabbitmq.conf << EOF
loopback_users.guest = false
listeners.tcp.default = 5672
hipe_compile = false management.listener.port = 15672
management.listener.ssl = false
EOF
#运行容器、映射到宿主机,挂载Volume
docker run \
--name rabbitmq-master \
--hostname rabbit1 \
-p 5671:5671 \ -p 5672:5672 \
-p 15672:15672 \ -p 25672:25672 \
-v /data/rabbitmq-master/conf/:/etc/rabbitmq/ \
-e RABBITMQ_ERLANG_COOKIE='weiwei.rabbitcookie' \
-d rabbitmq
#原本想在宿主机上收集日志的,添加了下列参数,发现虽然可以启动但是有报错
-v /data/rabbitmq-master/data/:/var/lib/rabbitmq/ \
#-v /data/rabbitmq-masterq/logs/:/var/log/rabbitmq/log/ \
#报错2019-04-11 12:11:13.765 [error] <0.109.0> Failed to open crash log file /var/log/rabbitmq/log/crash.log with error: permission denied
#故按配置默认Logs: <stdout>标准输出,
#取消了-v /data/rabbitmq/logs/:/var/log/rabbitmq/log/ 参数
########################################################################
# 以上是主节点A的配置,接下来需要注意的是,宿主机上的端口5671,5672,15672,25672已#
#经监听了rabbitmq-master的默认端口,故这边需要修改rabbitmq-slave节点在宿主机上的监#
#听节点、配置文件、数据存放路径 #
########################################################################
#新建rabbitmq-slave配置文件、数据存放路径
mkdir -p /data/rabbitmq-slave/{conf,data,logs}
#这边我用到了官方的配置文件,通过配置文件添加web管理端插件,容器中
echo "[rabbitmq_management]." > /data/rabbitmq-slave/conf/enabled_plugins
cat > /data/rabbitmq-slave/conf/rabbitmq.conf << EOF
loopback_users.guest = false
listeners.tcp.default = 5672
hipe_compile = false management.listener.port = 15672
management.listener.ssl = false
EOF
#运行容器、映射到宿主机,挂载Volume
docker run \
--hostname rabbit2 \
--name rabbitmq-slave \
-p 5673:5671 \
-p 5674:5672 \
-p 15673:15672 \
-p 25673:25672 \
--link rabbitmq-master:rabbit1 \
-v /data/rabbitmq-master/conf/:/etc/rabbitmq/ \
-e RABBITMQ_ERLANG_COOKIE='weiwei.rabbitcookie' \
-d rabbitmq
#进入rabbitmq-slave容器
参数“--ram”表示设置为内存节点,忽略次参数默认为磁盘节点。当然也可以不加
docker exec -it $(docker ps -qn 1) bash
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
#记得登上去改密码或者按需求创建用户以及权限
#访问默认管理界面宿主机IP:15672 用户密码guest/guest
#可以看到两个节点都存在了
CSDN编辑窗口好麻烦,一点都不人性化
下面是的分享的有道云笔记
更多推荐
所有评论(0)