介绍如何在CentOS 7 环境下通过Docker技术快速部署消息中间件RabbitMQ消息队列服务
卸载旧版本
Docker 较旧的版本称为docker 或 docker-engine,如果已安装,需要先卸载它们及相关依赖项
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
使用Docker仓库安装
1. 安装相关依赖包
yum-utils 提供了 yum-config-manager,而 device mapper 存储驱动程序则需要 device-mapper-persistent-data 和 lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
2. 添加Docker仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
通过 yum repolist 命令查看Docker仓库是否被成功添加
3. 安装Docker
yum install docker-ce docker-ce-cli containerd.io
通过 docker --version 命令查看Docker是否被成功安装
4.添加当前账号到docker用户组
默认情况下,只有root用户和docker用户组中的用户可以操作Docker,其他用户操作需要使用sudo命令提权,十分麻烦。为此我们可以将相关用户添加到docker用户组即可
usermod -aG docker sfjvip # 添加sfjvip用户到docker用户组中
通过 groups sfjvip 命令查看 sfjvip 用户是否被成功添加到docker用户组
启动Docker
1. 配置Docker开机自启
systemctl enable docker
systemctl start docker
部署RabbitMQ
在Docker Hub https://hub.docker.com 中搜索RabbitMQ镜像,直接进入Official官方镜像。由于我们需要Web管理页面,所以选择带有management字样的Tag
2.下载镜像
从Docker仓库中拉取镜像下载到本地,Tag可省略,则默认使用latest
docker pull [imagename]:[tag]
docker pull rabbitmq:management
下载完成后,查看本地镜像,可以看到所需的RabbitMQ已经拉取到本地了
docker images
3. 启动rabbitMQ容器
由于是第一次,所以我们需要使用docker run命令创建启动一个新的rabbitMQ容器
# 仅对外开放 Web管理页面端口15672
# 开放 Web管理页面端口15672、程序通讯端口5672
docker run -d --hostname fs-rabbitMQ --name rabbitMQ -p 15672:15672 -p 5672:5672 rabbitmq:management
-d : 后台模式运行容器,并返回容器ID(Container ID)
--hostname [hostname] : 指定容器的主机名
--name [name] : 指定容器的名称
-p [hostPort]:[containerPort]: 指定宿主机端口(host port) 和 容器端口(container port)的映射
4.rabbitMQ容器自动启动
docker update --restart=always rabbitMQ
RabbitMQ的 Web管理插件management plugin使用容器的15672端口,为了支持从外部网络访问该Web管理页面,需要将本地宿主机端口映射到该容器的15672端口,这里是将服务器本地的15672端口映射到容器的15672端口。这样即可通过 http://[serverIp]:15672 来访问RabbitMQ容器的Web管理页面。缺省用户名、密码均为guest。RabbitMQ和程序通讯端口5672同理