zoukankan      html  css  js  c++  java
  • centos7 安装docker 对应的 rabbitmq3.6.15

    一、查看官方的rabbitmq 镜像
    docker search rabbitmq

    选取第一个官方镜像

    二、下载镜像
    docker pull docker.io/rabbitmq

    完了,使用后发现是 Debian 的系统,不是centos7 的系统,所以改用下面的方式,用 centos7 下安装 rabbitmq ,然后打包的方式

    三、查看本地的镜像
    docker images

    发现里面有centos 镜像了,直接用;如果没有,可以用官方的centos 镜像

    四、建立Docker容器(container),以 shell 方式进入
    docker run -it --name dev-rabbitmq docker.io/centos:centos7.3.1611 /bin/bash
    dev-rabbitmq 为别名,docker.io/centos 为镜像名,centos7.3.1611 为tag(如果不加tag,本地会重新下面latest 的 docker.io/centos,所以必须要加tag)

    五、yum方式安装gcc相关、wget
    yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
    yum -y install wget

    六、安装 erlang
    # 下载 erlang 源码包
    cd /home
    wget http://erlang.org/download/otp_src_20.3.tar.gz
    # 解压
    tar xvf otp_src_20.3.tar.gz
    # 编译安装 erlang
    cd otp_src_20.3
    ./configure --prefix=/usr/local/erlang --with-ssl -enable-threads -enable-smmp-support -enable-kernel-poll -enable-hipe
    make && make install
    修改配置
    # vi 打开配置文件
    vi /etc/profile
    # 在profile中添加以下配置项
    ERLANG_HOME=/usr/local/erlang
    PATH=$ERLANG_HOME/bin:$PATH
    export ERLANG_HOME
    export PATH
    # 加载配置使改动生效
    source /etc/profile

    6. 安装 rabbitmq
    # 下载 rabbitmq源码包
    cd /home
    wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz
    # 解压
    tar -xvf rabbitmq-server-generic-unix-3.6.15.tar.xz
    # 拷贝解压文件目录到 /usr/local 中
    cp -rf ./rabbitmq_server-3.6.15 /usr/local/
    # 修改 rabbitmq 的文件夹名称
    cd /usr/local/
    mv rabbitmq_server-3.6.15 rabbitmq-3.6.15
    # 打开 rabbitmq_management
    cd ./rabbitmq-3.6.15/sbin/
    ./rabbitmq-plugins enable rabbitmq_management
    # 修改配置 rabbitmq-server
    vi ./rabbitmq-server
    # 在文件头部增加以下配置
    ERLANG_HOME=/usr/local/erlang
    export PATH=$ERLANG_HOME/bin:$PATH
    # 修改配置 rabbitmqctl
    vi ./rabbitmqctl
    # 在文件头部增加以下配置
    ERLANG_HOME=/usr/local/erlang
    export PATH=$ERLANG_HOME/bin:$PATH

    七. rabbitmq 相关操作
    # 启动 rabbitmq-server
    ./rabbitmq-server
    ./rabbitmq-server -detached
    # 停止 rabbitmq
    ./rabbitmqctl stop
    # 增加用户 admin
    cd /usr/local/rabbitmq-3.6.15/sbin
    # 添加用户名:admin 密码:admin
    ./rabbitmqctl add_user admin admin
    # 设置角色为 管理员
    ./rabbitmqctl set_user_tags admin administrator
    # 设置权限
    ./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
    #新建host
    ./rabbitmqctl add_vhost "dmd"
    ./rabbitmqctl set_permissions -p "dmd" admin ".*" ".*" ".*"

    八、配置远程访问
    #修改配置文件
    sudo vi /etc/rabbitmq/rabbitmq.config
    #保存以下内容
    [
    {rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["admin"]}]}
    ].
    发现没有 /etc/rabbitmq/rabbitmq.config 这个文件,运行 ./rabbitmq-server status ,查看日志文件在
    /usr/local/rabbitmq-3.6.15/var/log/rabbitmq/rabbit@2895ffd6be24.log ,查看此文件,发现

    配置文件在 : config file(s) : /usr/local/rabbitmq-3.6.15/etc/rabbitmq/rabbitmq.config (not found)
    显示没有找到,所以去新建这个文件
    vi /usr/local/rabbitmq-3.6.15/etc/rabbitmq/rabbitmq.config
    #保存以下内容
    [
    {rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["admin"]}]}
    ].

    九、Docker 制作镜像文件
    docker commit dev-rabbitmq centos7/rabbitmq-3615

    十、使用制作好的镜像文件生成 Docker 容器,容器启动 rabbitmq
    docker run -tid --name docker-rabbitmq -p 5672:5672 -p 15672:15672 centos7/rabbitmq-3615 /usr/local/rabbitmq-3.6.15/sbin/rabbitmq-server

    即可,访问 ip:15672

    重点来了:

    看过很多文档,到这里就结束了,事实上在 界面里面创建的一些信息,例如登录用户的信息等等 在重启后会消失,经排查
    发现下面启动方式不行,虽然能启动,但是一是目录没有挂载
    docker run -tid --name dev-rabbitmq -p 5672:5672 -p 15672:15672 centos7/rabbitmq-3615 /usr/local/rabbitmq-3.6.15/sbin/rabbitmq-server
    更关键的是,会由于每次启动docker images ,会生成新的容器的主机名,但是之前创建的数据是保存在之前对应主机名的 mnesia 目录下的,如
    /usr/local/rabbitmq-3.6.15/var/lib/rabbitmq/mnesia/rabbit@7094af771171


    所以 加入两点,一、挂载目录到宿主机,二、加入-h hostname 名称,固定主机名
    一定要挂载目录到宿主机 /mnt/data/rabbitmq-data/rabbitmq-3.6.15 为宿主机的目录
    docker run -tid --name dev-rabbitmq -h rabbitmqhost -p 5672:5672 -p 15672:15672 -v /mnt/data/rabbitmq-data/rabbitmq-3.6.15:/usr/local/rabbitmq-3.6.15 centos7/rabbitmq-3615 /usr/local/rabbitmq-3.6.15/sbin/rabbitmq-server
    再次启动,完美解决rabbitmq 重启后,之前创建数据消失的问题

  • 相关阅读:
    mybatis数组和集合的长度判断及插入
    Getting Started with JavaFX
    抛出 NoClassDefFoundError: javax/validation/constraints/Size 问题的解决方法
    slf4japi整合maven 工程日志配置文件
    一场因OpenJDK引发的血案 之JavaFx
    Spring Boot logback springProperty 设置默认值
    java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive
    Linux curl命令使用代理、以及代理种类介绍
    Mybatis异常_03_Invalid bound statement (not found)
    Spring Boot 中文乱码问题解决方案汇总
  • 原文地址:https://www.cnblogs.com/wjq310/p/10059661.html
Copyright © 2011-2022 走看看