在Linux中通过docker安装rabbitmq

本文介绍如何在Linux环境中利用Docker安装和配置RabbitMQ消息队列服务,包括卸载旧版Docker、安装依赖、配置Docker仓库、安装及验证Docker、网络端口映射、RabbitMQ配置等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先在Linux中安装docker,然后在docker中安装rabbitmq,并进行docker网络端口映射。

安装docker

第一步,卸载旧版本docker。

若系统中已安装旧版本docker,则需要卸载旧版本docker以及与旧版本docker相关的依赖项。

命令:yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

第二步,安装gcc依赖。

命令:yum -y install gcc gcc-c++

第三步,使用docker仓库进行安装。

在新主机上首次安装docker Engine-Community之前,需要设置docker仓库。之后,可以从仓库安装和更新docker。

# 设置仓库,安装所需的软件包。

命令:yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置稳定的仓库,使用官方源地址(比较慢)

命令:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 可以选择国内的一些源地址,如阿里云

命令:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 可以选择国内的一些源地址,如清华大学源

命令:yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

第四步,安装docker Engine-Community。

# 更新yum软件包索引

命令:yum makecache

# 安装最新版本的docker Engine-Community和containerd

命令:yum -y install docker-ce docker-ce-cli containerd.io

# 查看docker-ce是否成功安装

命令:yum list docker-ce

docker安装完默认未启动,并且已经创建好docker用户组,但该用户组下没有用户。 

# 列出存储库中可用的版本并按版本号从高到低进行排序

命令:yum list docker-ce --showduplicates | sort -r

# 通过其完整的软件包名称安装特定版本,如docker-ce-24.0.0。

命令:yum -y install docker-ce-24.0.0 docker-ce-cli-24.0.0 containerd.io

第五步,启动docker。

命令:systemctl enable docker

systemctl start docker

systemctl restart docker

若结果显示“Job for docker.service failed because the control process exited with error code.See "systemctl status docker.service" and "journalctl -xe" for details.”,则运行如下命令:

systemctl daemon-reload

systemctl restart docker.service

第六步,验证docker Engine-Community是否正确安装。

命令:docker version

docker run hello-world

若结果显示“Unable to find image 'hello-world:latest' locally”,则需要按照下面的步骤来解决:

1)创建文件daemon.json文件。

命令:touch /etc/docker/daemon.json

2)配置文件/etc/docker/daemon.json,添加阿里云镜像。

{
"registry-mirrors": ["https://ufxq8t1x.mirror.aliyuncs.com"]
}

3)重启docker服务。

命令:systemctl restart docker

systemctl status docker

再次验证:docker run hello-world

若结果显示“Hello from docker!”,则说明docker安装成功。

进行docker网络端口映射

第一步,从Docker Hub上查找rabbitmq镜像。

命令:docker search rabbitmq

第二步,拉取rabbitmq镜像。

# 拉取最新版本的rabbitmq镜像

命令:docker pull rabbitmq:management

第三步,列出本地所有的镜像。

命令:docker images -a

第四步,列出当前所有正在运行的镜像。

命令:docker images

第五步,从docker中删除镜像。

命令:docker rmi [镜像ID或容器名称]

# 从docker中强制删除镜像

命令:docker rmi -f [镜像ID或容器名称]

# 通过docker images -p查询到的镜像ID来删除所有镜像

命令:docker rmi -f $(docker images -p)

第六步,创建执行网络端口映射容器。

# 设置erlang发现端口为4368;设置amqp客户端端口为5672;设置http管理界面端口为15672;设置clustering服务端内部通信端口为25672。

命令:docker run -dit --restart=always \

--privileged=true \

--cap-add SYS_ADMIN \

-e container=docker \

--network bridge \

-p 4368:4368 \

-p 5672:5672 \

-p 15672:15672 \

-p 25672:25672 \

-v /data:/data \

--name rabbitmq \

rabbitmq:management

第七步,列出所有的容器。

命令:docker ps -a

第八步,列出当前所有正在运行的容器。

命令:docker ps

第九步,删除容器。

命令:docker rm [容器ID或容器名称]

# 从docker中强制删除容器

命令:docker rm -f [容器ID或容器名称]

# 删除多个容器

命令:docker rm -f $(docker ps -a -q)

Rabbitmq配置

第一步,进入rabbitmq容器。

命令:docker ps

docker exec -it [容器ID] /bin/bash

若结果显示下图所示,则表明尝试与正在重启的容器进行交互时发生了冲突,docker处于不可用的状态,因此,不能执行特定的操作。

 

可以通过下面的方法来解决这个问题:

1)运行命令“docker logs [容器ID]”来查看日志,会得知为什么容器会重启。

 

删除该容器,然后在重装容器时去掉“/usr/sbin/init”。

2)当重装容器后,运行命令“docker ps”查看状态,一旦状态变为“up”,就表示容器已经准备好了。

 

3)最后运行命令“docker exec -it [容器ID] /bin/bash”就可以成功进入容器。

 

第二步,添加其他用户。

因guest用户只能在本机访问,所以需要添加一个admin用户,密码设为123456。添加用户只能在Rabbitmq启动的状态下进行。

命令:rabbitmqctl add_user admin 123456

rabbitmqctl set_user_tags admin administrator

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

 

# 修改密码

命令:rabbitmqctl change_password 用户名 新密码

# 删除用户

命令:rabbitmqctl delete_user 用户名

# 查看用户清单

命令:rabbitmqctl list_users

第三步,开启管理权限。

命令:rabbitmq-plugins enable rabbitmq_management

 

第四步,在浏览器上访问rabbitmq网页。

访问:http://x.x.x.x:15672,可以使用(用户名:guest,密码:guest)登录,也可以使用(用户名:admin,密码:123456)登录。

(IP地址是Rabbitmq所安装在的服务器的IP地址)

卸载docker

# 卸载docker

命令:systemctl stop docker

yum remove docker-ce docker-ce-cli containerd.io

# 删除安装包

命令:yum remove docker-ce

# 删除镜像、容器、配置文件等内容

命令:rm -rf /var/lib/docker

rm -rf /var/lib/containerd

### 在Linux虚拟机上的Docker容器中部署RabbitMQ 要在Linux虚拟机中的Docker容器内安装并运行RabbitMQ消息队列服务,可以按照以下方法操作: #### 1. 安装 Docker 确保目标 Linux 虚拟机已正确安装 Docker。如果尚未安装,则可以通过以下命令完成安装: ```bash sudo apt-get update sudo apt-get install -y docker.io ``` 验证 Docker 是否正常工作: ```bash docker --version ``` #### 2. 下载 RabbitMQ 镜像 拉取官方的 RabbitMQ 镜像至本地: ```bash docker pull rabbitmq ``` 此命令会下载最新的稳定版本的 RabbitMQ 镜像[^3]。 #### 3. 启动 RabbitMQ 容器 创建并启动一个带有管理插件支持的 RabbitMQ 容器。以下是推荐的启动参数设置: ```bash docker run -d \ --hostname my-rabbit \ --name rabbitmq-container \ -p 5672:5672 \ -p 15672:15672 \ -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=secret \ rabbitmq:management ``` 在此命令中: - `-p 5672:5672` 将 RabbitMQ 的 AMQP 协议端口映射到宿主机。 - `-p 15672:15672` 映射 Web 管理界面端口。 - `RABBITMQ_DEFAULT_USER` 和 `RABBITMQ_DEFAULT_PASS` 设置默认管理员账户及其密码[^3]。 #### 4. 进入容器并启用插件(可选) 虽然在镜像名后加上 `:management` 已经包含了管理插件,但如果需要手动确认或额外配置其他插件,可通过如下方式进入容器内部: ```bash docker exec -it rabbitmq-container bash rabbitmq-plugins enable rabbitmq_management exit ``` 这一步骤通常不需要单独执行,因为 `rabbitmq:management` 镜像已经预置了这些功能[^3]。 #### 5. 测试 RabbitMQ 是否正常运行 访问 RabbitMQ 的 Web 界面来测试其状态。打开浏览器输入地址: `http://<your_vm_ip>:15672` 登录时使用之前设定好的用户名 (`admin`) 及密码 (`secret`) 登录即可查看实例的状态信息。 --- ### 注意事项 对于生产环境中高可用性和性能调优方面,可能还需要进一步调整一些高级选项比如通过环境变量或者自定义配置文件来进行更细致化的控制[^5]: - **节点名称**: 使用 `RABBITMQ_NODENAME` 设定唯一的节点名字; - **绑定 IP 地址**: 利用 `RABBITMQ_NODE_IP_ADDRESS` 参数指定监听的具体网卡地址而非全部开放给外部访问; - **端口号修改**: 如果默认端口被占用则考虑更改成未使用的数值; 此外,在多节点集群场景下还可以借助 HAProxy 或 Keepalived 实现负载均衡以及故障切换等功能[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jerry 二河小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值