Docker部署rabbitmq
1、 准备docker环境:
# yum -y install docker
# docker ps
@如果有输出
CONTAINER ID IMAGE COMMAND CREATED PORTS
证明已经安装完毕。
2、 部署外网环境
# docker search rabbitmq
letsxo/rabbitmq RabbitMQ with Management and MQTT plugins.
@选择这一个,因为他又web管理和MQTT。
# docker pull letsxo/rabbitmq
# docker images
letsxo/rabbitmq latest 93a7eefb0865 2 weeks ago 38.6MB
@接下来,根据下载的镜像创建rabbitmq容器
# docker run -d -p 5671:5671 -p 5672:5672 -p 15672:15672 -p 15671:15671 -p 25672:25672 -v /data/rabbitmq-data/:/var/rabbitmq/lib --name rabbitmq 93a7eefb0865
@ 93a7eefb0865 :是镜像的ID,此处也可以写镜像的名字:如letsxo/rabbitmq
@查看已经运行的容器:
# docker ps
@可以看到容器已经正常运行,此时可以通过访问本机的15672端口访问web管理端:http://本机ip:15672
3、 部署内网机器
@首先需要下载,rabbitmq的镜像,一是在网上直接下载(太慢了);二是直接找一台能上外网带docker环境的机器,使用docker pull下载。
# docker search rabbitmq
# docker pull letsxo/rabbitmq
# docker images
letsxo/rabbitmq latest 93a7eefb0865 2 weeks ago 38.6MB
# docker save 93a7eefb0865 > rabbitmq.tar
@将rabbitmq.tar拷贝到内网服务器:
# scp –P port rabbitmq.tar user@ip:path
如果是默认的22端口,-P就不用了。
在内网服务器上将拷贝来的rabbitmq.tar文件导入为镜像:
# docker load < rabbitmq.tar
@打标签:
# docker tag 93a7eefb0865 rabbitmq:cuishuai
@创建并运行容器:
# docker run -d -p 5671:5671 -p 5672:5672 -p 15672:15672 -p 15671:15671 -p 25672:25672 -v /data/rabbitmq-data/:/var/rabbitmq/lib --name rabbitmq 93a7eefb0865
! 93a7eefb0865 :是镜像的ID,此处也可以写镜像的名字:如letsxo/rabbitmq
4、 Web端配置rabbitmq:
@rabbitmq默认创建了guest/guest用户,使用此用户不安全。需要修改密码,及创建新的用户。
1)登陆后你如图所示的步骤进行操作来添加新用户:
2)修改密码:
修改密码和权限按1->2->3来完成;4是用来删除用户的。
3)创建vhost,按如图1->2->3->4来完成:
将创建的vhost应用到用户,在首页的用户名上单击用户名进入如图所示的界面:
4)创建policy
注:
rabbitmq的数据库名称规则是,NODENAME@hostname,Docker每次从Docker image启动容器的时候会自动生成hostname,这样一来,你保存在主机上的数据库就会没用了,包括之前创建的用户也会没有了。所以在创建容器的时候必须指定--hostname=rabbitmqhostone,这样docker环境启动后rabbitmq就会一直读取固定目录中的数据了