docker搭建rabbitmq

时间:2022-06-06 21:39:38

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)登陆后你如图所示的步骤进行操作来添加新用户:

docker搭建rabbitmq

 

2)修改密码:

 

docker搭建rabbitmq

docker搭建rabbitmq

 

修改密码和权限按1->2->3来完成;4是用来删除用户的。

 

3)创建vhost,按如图1->2->3->4来完成:

  docker搭建rabbitmq

 

  将创建的vhost应用到用户,在首页的用户名上单击用户名进入如图所示的界面:

 docker搭建rabbitmq

4)创建policy

  docker搭建rabbitmq

注:

rabbitmq的数据库名称规则是,NODENAME@hostname,Docker每次从Docker image启动容器的时候会自动生成hostname,这样一来,你保存在主机上的数据库就会没用了,包括之前创建的用户也会没有了。所以在创建容器的时候必须指定--hostname=rabbitmqhostone,这样docker环境启动后rabbitmq就会一直读取固定目录中的数据了