Docker容器安装RabbitMQ


Docker容器安装RabbitMQ

准备资料

  • erlang的rpm安装包 https://github.com/rabbitmq/erlang-rpm/releases

  • rabbitmq的rpm安装包 https://github.com/rabbitmq/rabbitmq-server/releases

  • jdk,官网下载

1、创建容器

  • -i 交互模式
  • -d 后端运行
  • -h 容器的hostname
  • --name 容器名
  • --network 网卡
  • --ip IP地址
  • -p 端口映射
  • --privileged=true 和 /usr/sbin/init 为特权模式参数
[root@localhost Tools]# docker run -i -d -h rabbitmq --name rabbitmq --net docker-br0 --ip 172.127.0.202 -p 5672:5672 -p 15672:15672 --privileged=true centos:7 /usr/sbin/init

2、进入容器更新yum并安装常用工具包及erlang依赖包

[root@localhost ~]# docker exec -it rabbitmq /bin/bash
[root@rabbitmq /]# yum -y update
[root@rabbitmq /]# yum -y install vim zip unzip bzip2 net-tools wget gcc glibc-devel make ncurses-devel openssl-devel xmlto perl logrotate socat

3、上传rpm包并配置utf-8编码字符集

  • docker cp 必须在容器外执行
[root@rabbitmq /]# mkdir Tools
  • 容器外,一般可以另开一个xshell页面操作
[root@localhost Tools]# docker cp jdk-8u321-linux-x64.tar.gz rabbitmq:/Tools/
[root@localhost Tools]# docker cp rabbitmq-server-3.9.14-1.el7.noarch.rpm rabbitmq:/Tools/
[root@localhost Tools]# docker cp erlang-23.3.4.11-1.el7.x86_64.rpm rabbitmq:/Tools/
  • 配置编码字符集
[root@rabbitmq /]# vim /etc/profile
[root@rabbitmq /]# source /etc/profile

  • 解决退出容器后重新进入编码字符集失效的问题
    每次进入容器都会加载/root/.bashrc资源,因此在此文件中执行source /etc/profile可实现加载配置失效问题
[root@rabbitmq /]# vim /root/.bashrc
[root@rabbitmq /]# cat /root/.bashrc | grep source

4、安装jdk

  • -C 指定解压路径
[root@nginx Tools]# tar -zxvf jdk-8u321-linux-x64.tar.gz -C /usr/local/
  • 配置环境变量
[root@rabbitmq Tools]# vim /etc/profile
[root@rabbitmq Tools]# source /etc/profile
[root@rabbitmq Tools]# cat /etc/profile | grep JAVA_HOME

  • 验证
[root@rabbitmq Tools]# java -version

5、安装erlang

[root@rabbitmq Tools]# rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm 

  • 验证
[root@rabbitmq Tools]# erl -version

6、安装rabbitmq

[root@rabbitmq Tools]# rpm -ivh rabbitmq-server-3.9.14-1.el7.noarch.rpm

7、启动rabbitmq插件

[root@rabbitmq Tools]# whereis rabbitmq
[root@rabbitmq Tools]# cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.9.14/sbin/
[root@rabbitmq sbin]# rabbitmq-plugins enable rabbitmq_management

8、修改配置文件

  • rabbitmq.conf没有则新建
  • rabbitmq.conf必须为.conf格式
[root@rabbitmq sbin]# vim /etc/rabbitmq/rabbitmq.conf
[root@rabbitmq sbin]# vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.9.14/sbin/rabbitmq-defaults

listeners.tcp.default = 5672 #数据管理端口
management.tcp.port = 15672 #界面管理端口
management.tcp.ip = 0.0.0.0

9、启动rabbitmq

[root@rabbitmq sbin]# ./rabbitmq-server > /home/rabbitmq/log/server.log 2>&1 &
[root@rabbitmq sbin]# ps -ef | grep rabbit

10、配置统一的cookie

  • 查找
[root@rabbitmq sbin]# cat /var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq sbin]# cat /root/.erlang.cookie

  • 任选一个配置另一个文件的cookie值
    需先调整文件的读写权限,改完后再将权限收回
[root@rabbitmq sbin]# ll /root/.erlang.cookie 
[root@rabbitmq sbin]# chmod 755 /root/.erlang.cookie 
[root@rabbitmq sbin]# vim /root/.erlang.cookie 
[root@rabbitmq sbin]# chmod 400 /root/.erlang.cookie 
[root@rabbitmq sbin]# cat /var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq sbin]# cat /root/.erlang.cookie

  • 修改完后需重启服务
[root@rabbitmq sbin]# ps -ef | grep rabbit
[root@rabbitmq sbin]# kill -9 1094
[root@rabbitmq sbin]# ./rabbitmq-server &

10、创建用户

默认用户guest、密码guest只能用localhost登录

[root@rabbitmq sbin]# rabbitmqctl add_user admin 17562yxp.
[root@rabbitmq sbin]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
[root@rabbitmq sbin]# rabbitmqctl set_user_tags admin administrator

11、验证

12、其他

[root@rabbitmq sbin]# rabbitmqctl stop  # 停止服务