docker第四讲:rabbitmq镜像安装及运行
镜像官网:https://hub.docker.com/1. 拉取 rabbitmq 版本镜像 (选择一个版本)3.7-management-alpine (这是我选的版本号)拉取镜像:命令:docker pull rabbitmq:3.7-management-alpine查看镜像:[root@wangqinmin ~]# docker imagesREPOSIT...
1. 拉取 rabbitmq 版本镜像 (选择一个版本)
3.7-management-alpine (这是我选的版本号)
拉取镜像:
命令:docker pull rabbitmq:3.7-management-alpine
查看镜像:
[root@wangqinmin ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rabbitmq 3.7-management-alpine d0734dc6a1bb 5 days ago 131MB
运行rabbitmq命令:
docker run -d --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5673:5672 rabbitmq:3.7-management-alpine
这个可以不看:
另一个运行命令(多了--hostname rabbit-host ) 可以跟上面的对比着学习一下:
docker run -d --hostname rabbit-host --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5673:5672 rabbitmq:3.7-management-alpine
运行rabbitmq命令解析(下面是命令拆分):
docker run -d --name -- 这里是固定的
Myrabbitmq -- 这个表示当rabbitmq在docker中运行起来后,在docker中的自定义名称 (就好比手机应用的重命名。爱改不改)
-e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -- 给rabbitmq设置登录的用户名、密码(这里的用户名、密码都为admin)
-p 15672:15672 -p 5673:5672 -- 比如只看:-p 5673:5672 这里的 -p 表示映射端口, 5673表示linux服务器的端口号,5672表示docker镜像中运行程序的端口号 (我这里使用5673端口号的原因是:我的activemq的端口使用了5672)
rabbitmq:3.7-management-alpine -- 当使用命令:docker images 看见 REPOSTTORY 和 TAG 下面的rabbitmq 和 3.7-management-alpine 在他们中间加个 冒号
后面这几步可以不看:
使用命令查看rabbitmq运行情况:
[root@wangqinmin ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d0a8f8176dda rabbitmq:3.7-management-alpine "docker-entrypoint..." 4 minutes ago Up 4 minutes 4369/tcp, 5671/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, 0.0.0.0:5673->5672/tcp Myrabbitmq
373859f18930 0f55cf3661e9 "docker-entrypoint..." 2 weeks ago Up 2 weeks 0.0.0.0:63791->6379/tcp redis
54e115dbc5ae mysql:5.6.42 "docker-entrypoint..." 2 weeks ago Up 2 weeks 0.0.0.0:33061->3306/tcp mysql.5.6.42
35937e30972d mysql:5.6.26 "/entrypoint.sh my..." 3 weeks ago Up 3 weeks 0.0.0.0:33060->3306/tcp mysql.5.6.26
我们发现里面有一段: 5671/tcp, 15671/tcp, 25672/tcp
这个跟后面的:0.0.0.0:15672->15672/tcp, 0.0.0.0:5673->5672/tcp
显示不一样,表示没有被映射到linux上面去。
按理来说也不用映射出去,如果有什么问题的话,就把映射加上即可。
在运行rabbitmq的命令中:
docker run -d --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5673:5672 rabbitmq:3.7-management-alpine
里面其实就只加上了一段
-p 4369:4369 -p 5671:5671 -p 25672:25672
就好了。
合起来就是:
docker run -d --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 4369:4369 -p 5671:5671 -p 25672:25672 rabbitmq:3.7-management-alpine
端口号解析 (当做补充看看吧)
4369 (epmd), 25672 (Erlang distribution)
5672, 5671 (AMQP 0-9-1 without and with TLS)
15672 (if management plugin is enabled)
61613, 61614 (if STOMP is enabled)
1883, 8883 (if MQTT is enabled)
4369 (epmd), 25672 (Erlang distribution)
Epmd 是 Erlang Port Mapper Daemon 的缩写,在 Erlang 集群中相当于 dns 的作用,绑定在4369端口上。
5672, 5671 (AMQP 0-9-1 without and with TLS)
AMQP 是 Advanced Message Queuing Protocol 的缩写,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,专为面向消息的中间件设计。基于此协议的客户端与消息中间件之间可以传递消息,并不受客户端/中间件不同产品、不同的开发语言等条件的限制。Erlang 中的实现有 RabbitMQ 等。
15672 (if management plugin is enabled)
通过 http://serverip:15672 访问 RabbitMQ 的 Web 管理界面,默认用户名密码都是 guest。(注意:RabbitMQ 3.0之前的版本默认端口是55672,下同)
61613, 61614 (if STOMP is enabled)
Stomp 是一个简单的消息文本协议,它的设计核心理念就是简单与可用性,官方文档,实践一下 Stomp 协议需要:
一个支持 stomp 消息协议的 messaging server (譬如activemq,rabbitmq);
一个终端(譬如linux shell);
一些基本命令与操作(譬如nc,telnet)
1883, 8883 (if MQTT is enabled)
MQTT 只是 IBM 推出的一个消息协议,基于 TCP/IP 的。两个 App 端发送和接收消息需要中间人,这个中间人就是消息服务器(比如ActiveMQ/RabbitMQ),三者通信协议就是 MQTT
更多推荐
所有评论(0)