设置yum源

  1. yum install -y yum-utils device-mapper-persistent-data lvm2
  2. yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. yum makecache fast

安装Docker-CE

  1. yum -y install docker-ce

设置开机自启动

  1. yum -y install docker-ce

验证

  1. docker run hello-world

首先我们现在在服务器上安装主Rabbitmq容器主节点rabbitmq-master
#指定rabbitmq版本、这边与开发确认后获取最新版本

  1. docker pull rabbitmq

期望容器中的配置文件、数据、日志再容器异常关闭或主动删除后保留,则需要配置挂载

容器对应配置文件路径都是从https://hub.docker.com/_/rabbitmq上对应的官网操作中确认过的

  1. mkdir -p /data/rabbitmq-master/{conf,data,logs}

这边我用到了官方的配置文件,通过配置文件添加web管理端插件,

  1. echo "[rabbitmq_management]." > /data/rabbitmq-master/conf/enabled_plugins
  2. cat > /data/rabbitmq-master/conf/rabbitmq.conf << EOF
  3. loopback_users.guest = false
  4. listeners.tcp.default = 5672
  5. hipe_compile = false
  6. management.listener.port = 15672
  7. management.listener.ssl = false
  8. EOF

运行容器、映射到宿主机,挂载Volume

  1. docker run \
  2. --name rabbitmq-master \
  3. --hostname rabbit1 \
  4. -p 5671:5671 \
  5. -p 5672:5672 \
  6. -p 15672:15672 \
  7. -p 25672:25672 \
  8. -v /data/rabbitmq-master/conf/:/etc/rabbitmq/ \
  9. -e RABBITMQ_ERLANG_COOKIE='tenant.rabbitcookie' \
  10. -d rabbitmq

原本想在宿主机上收集日志的,添加了下列参数,发现虽然可以启动但是有报错,于是放弃

报错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: 标准输出,
#取消了-v /data/rabbitmq/logs/:/var/log/rabbitmq/log/ 参数
#记得登上去改密码或者按需求创建用户以及权限
#默认管理界面宿主机IP:15672 用户密码guest/guest
########################################################################
# 以上是主节点A的配置,接下来需要注意的是,宿主机上的端口5671,5672,15672,25672已 #
#经监听了rabbitmq-master的默认端口,故这边需要修改rabbitmq-slave节点在宿主机上的监 #
#听节点、配置文件、数据存放路径 #
########################################################################
#新建rabbitmq-slave配置文件、数据存放路径

  1. mkdir -p /data/rabbitmq-slave/{conf,data,logs}

这边我用到了官方的配置文件,通过配置文件添加web管理端插件,容器中

  1. echo "[rabbitmq_management]." > /data/rabbitmq-slave/conf/enabled_plugins
  2. cat > /data/rabbitmq-slave/conf/rabbitmq.conf << EOF
  3. loopback_users.guest = false
  4. listeners.tcp.default = 5672
  5. hipe_compile = false
  6. management.listener.port = 15672
  7. management.listener.ssl = false
  8. 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='tenant.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
#可以看到两个节点都存在了