docker stack 部署 rabbitmq 容器

===============================================

 2018/5/13_第1次修改                       ccb_warlock

 

===============================================

rabbitmq作为开源的消息中间件目前已经被广泛应用,由于正在进行服务的容器化,所以rabbitmq的容器部署也提上日程。

由于以swarm作为容器的基础框架,故本篇整理stack中部署容器服务的方式。

 


 一、前提条件

 


 二、部署rabbitmq

 2.1 创建映射的本地目录

mkdir -p /usr/docker-vol/rabbitmq/conf

 2.2 增加配置文件rabbitmq.config

vim /usr/docker-vol/rabbitmq/conf/rabbitmq.config

为了允许guest用户能通过任意ip访问manager界面,故在rabbitmq.config中增加下面的信息。

[
 {rabbit,     
 [
    {loopback_users, []}
 ]}
].

 2.3 编辑rabbitmq-stack.yml

vim /root/rabbitmq-stack.yml

 # 添加下面的内容,wq保存

version: '3'
services:

  rabbitmq-mananger:
    image: rabbitmq:mananger # 这里获取带有manager页面的rabbitmq的镜像
    environment:
      - TZ=Asia/Shanghai # 设定容器的时区为亚洲/上海
    volumes:
      # rabbitmq的配置文件
      - /usr/docker-vol/rabbitmq/conf/rabbitmq.config:/etc/rabbitmq/rabbitmq.config
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
    ports:
      - 4369:4369
      - 5671:5671
      - 5672:5672
      - 15671:15671
      - 15672:15672
      - 25672:25672
    networks:
      - net01

networks:
  net01:
    external: true # 使用外部同名网络net01,如果对网络没有要求可以去掉networks信息,docker会生成一个默认网络给该服务栈

 2.4 创建服务栈

 1)命令方式

cd
docker stack deploy -c rabbitmq-stack.yml rabbitmq-stack

 2)portainer界面方式(推荐)

登录portainer(如果是根据上面的教程部署的portainer,浏览器访问http://宿主机IP:9000,在stack中增加rabbitmq-stack.yml文件中的内容)

  

 PS.如果需要保证安全,可以不增加配置文件是guest账户不能被其他ip登录manager页面,并创建一个新的管理员账户进行管理。

 通过portainer进入rabbitmq容器的命令行,接着运行下面的命令。

 # 创建admin用户(密码也为admin)

rabbitmqctl  add_user  admin  admin

 # 设置admin为超级管理员

rabbitmqctl  set_user_tags  admin  administrator

# 角色说明:

  • administrator:超级管理员。可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
  • monitoring:监控者。可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
  • policymaker:策略制定者。可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息。与administrator的对比,administrator能查看节点的相关信息
  • management:普通管理者。仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
  • 其他:无法登陆管理控制台,通常就是普通的生产者和消费者。


# 配置初始的命名空间/给admin

rabbitmqctl set_permissions -p / admin "admin-*" ".*" ".*"

猜你喜欢

转载自www.cnblogs.com/straycats/p/9033700.html