Linux Docker 安装 Rabbitmq

1、Rabbitmq 搜索,下载,查看

# 搜索镜像
docker search rabbitmq:management

# 下载镜像 (注意:如果不带management,启动rabbitmq后无法打开管理页面)
docker pull rabbitmq:management

# 查看镜像
docker images

2、新建 Rabbitmq 配置文件夹

mkdir -p /home/20221125/myrabbitmq/{data,conf,log,enabled_plugins}

# 创建完成之后要对所创建文件授权权限,都设置成 777 否则在启动容器的时候容易失败
chmod -R 777 /home/20221125/myrabbitmq

# 挂载文件需要执行
chown -R 999:999 /home/20221125/myrabbitmq
chown -R 999:999 /home/20221125/myrabbitmq/conf
chown -R 999:999 /home/20221125/myrabbitmq/log
chown -R 999:999 /home/20221125/myrabbitmq/data

# 挂载文件需要执行
chmod 600 /home/20221125/myrabbitmq/data/.erlang.cookie

3、生成容器,先不挂载

docker run -d --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management
# 参数说明:
-e RABBITMQ_DEFAULT_USER:设置用户名;
-e RABBITMQ_DEFAULT_PASS:设置密码;

# 默认用户、密码
默认用户:guest
默认密码:guest

# 进入容器
docker exec -it rabbitmq /bin/bash
ls -l

# 配置文件目录
cd /etc/rabbitmq

# 数据存储目录
cd /var/lib/rabbitmq

# 日志目录
cd /var/log/rabbitmq

# 查看插件列表
rabbitmq-plugins list

4、容器文件 复制到 宿主机

# 容器文件 复制到 宿主机
docker cp <容器路径> <宿主机路径>

docker cp rabbitmq:/etc/rabbitmq /home/20221125/myrabbitmq/conf
docker cp rabbitmq:/var/log/rabbitmq /home/20221125/myrabbitmq/log
docker cp rabbitmq:/var/lib/rabbitmq /home/20221125/myrabbitmq/data
docker cp rabbitmq:/etc/rabbitmq/enabled_plugins /home/20221125/myrabbitmq/enabled_plugins

# 宿主机上创建rabbitmq用户
useradd rabbitmq

5、删除刚才创建的 rabbitmq 容器

# 直接执行docker rm rabbitmq或者以容器id方式关闭容器
# 找到 rabbitmq 对应的容器id
docker ps -a

# 关闭容器
docker stop rabbitmq

# 删除容器
docker rm rabbitmq

# 删除正在运行的 rabbitmq 容器
docker rm -f rabbitmq

# 停止和删除容器
docker stop rabbitmq && docker rm rabbitmq

# 重启容器
docker restart rabbitmq

6、重新生成容器,设置用户名和密码

docker run -di --name first_rabbitmq \
-p 5672:5672 -p 5671:5671 -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--hostname my-rabbit \
--restart=always \
rabbitmq:management

# 参数说明:
-d:表示在后台运行容器;
-p 15672:15672     rabbitmq management管理界面默认访问端口,(控制台Web端口号)映射到主机中
-p 15671:15671     management监听端口,前台浏览器的控制页面
-p 5671:5671        AMQP 0-9-1 without and with TLS
-p 5672:5672        应用访问端口
-p 4369:4369      (epmd)epmd 代表 Erlang 端口映射守护进程
-p 25672:25672    Erlang Distribution
-e:指定环境变量:
-e RABBITMQ_DEFAULT_VHOST:默认虚拟机名;
-e RABBITMQ_DEFAULT_USER:设置用户名;
-e RABBITMQ_DEFAULT_PASS:设置密码;
--hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 节点名称 存储数据,默认为主机名);
--name first_rabbitmq:设置容器名称;
rabbitmq:management:容器使用的镜像名称;

# 查看容器IP地址
docker inspect first_rabbitmq
docker inspect first_rabbitmq | grep 'IPAddress'

# 查看容器 hostname、ip地址、环境变量
docker exec first_rabbitmq hostname
docker exec first_rabbitmq ip addr
docker exec first_rabbitmq env

# 进入容器
docker exec -it first_rabbitmq /bin/bash
ls -l

# 配置文件目录
cd /etc/rabbitmq

# 数据存储目录
cd /var/lib/rabbitmq

# 日志目录
cd /var/log/rabbitmq

# 查看插件列表
rabbitmq-plugins list

# 查看启动日志
docker logs first_rabbitmq
docker logs -f -t --since="2022-11-27" --tail=10000 first_rabbitmq

# 添加用户
rabbitmqctl add_user test 123456

# 查看所有用户
rabbitmqctl list_users

# 浏览器访问 localhost:15672 失败,需要开启后台管理插件
docker exec -it first_rabbitmq /bin/bash
rabbitmq-plugins enable rabbitmq_management

7、检查是否安装成功

# 打开浏览器,地址栏输入 http://宿主机IP:15672
http://172.17.0.3:15672

# 默认
默认用户:guest
默认密码:guest

# 自定义
默认用户:admin
默认密码:admin

8、重新生成容器,挂载文件【只能挂载data,log,不能挂载conf配置文件】

docker run -di --name first_rabbitmq  -p 5672:5672 -p 5671:5671  -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
-v /home/20221125/myrabbitmq/data:/var/lib/rabbitmq  \
-v /home/20221125/myrabbitmq/log:/var/log/rabbitmq \
--hostname my-rabbit  \
--restart=always \
rabbitmq:management

# 挂载配置文件报错
-v /home/20221125/myrabbitmq/conf:/etc/rabbitmq

9、设置 docker 启动的时候自动启动(可选)

docker update first_rabbitmq --restart=always

10、关闭删除 rabbitmq 容器

# 关闭容器
docker stop first_rabbitmq

# 删除容器
docker rm first_rabbitmq

# 停止和删除容器
docker stop first_rabbitmq && docker rm first_rabbitmq

# 重启容器
docker restart first_rabbitmq

11、数据包转发

# 跳转目录
cd /usr/lib/sysctl.d
 
# 查看文件
cat /usr/lib/sysctl.d/50-default.conf
 
# 编辑文件
vim /usr/lib/sysctl.d/50-default.conf
 
# 末尾添加内容
net.ipv4.ip_forward = 1
 
# 重启network
systemctl restart network

12、防火墙、开放端口

# 查看防火墙状态
systemctl status firewalld
或
firewall-cmd --state
# 暂时关闭防火墙
systemctl stop firewalld
# 永久关闭防火墙(慎用)
systemctl disable firewalld
# 开启防火墙
systemctl start firewalld
# 开放指定端口
firewall-cmd --zone=public --add-port=5672/tcp --add-port=15672/tcp --permanent
# 关闭指定端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
# 立即生效
firewall-cmd --reload
# 查看开放的端口
firewall-cmd --zone=public --list-ports

docker-compose

# Step 1: 创建 docker-compose.yml 文件
cd /home/20221125/myrabbitmq
vim docker-compose.yml

# Step 2: 编辑内容如下
version: '3.0'
services:
  rabbitmq_master_server:
    image: rabbitmq:management
    container_name: rabbitmq_master
    restart: always
    privileged: true
    hostname: rabbitmq_master
    extra_hosts:
      - "rabbitmq-master:192.168.1.201"
      - "rabbitmq-slave:192.168.1.202"
   environment:
      - RABBITMQ_DEFAULT_USER: admin
      - RABBITMQ_DEFAULT_PASS: 123456
      - RABBITMQ_ERLANG_COOKIE=SaturnABCDEFGHIJKLMNOPQRSTUVWXYZ1026
   ports:
      - 5672:5672
      - 15672:15672
      - 4369:4369
      - 25672:25672
   volumes:
      - /home/20221125/myrabbitmq/data:/var/lib/rabbitmq   
      - /home/20221125/myrabbitmq/conf:/etc/rabbitmq
      - /home/20221125/myrabbitmq/log:/var/log/rabbitmq

# Step 3: 执行命令
docker-compose up -d
docker-compose -f docker-compose-rabbitmq.yml up -d

*
*
*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值