centos 7 docker部署rabbitmq
启动命令:
docker run -d --hostname han-rabbit --name lihan-rabbit -p 8080:15672 -p 5672:5672 rabbitmq:3-management
以上命令, 按我的理解, 会先看本地有没有 rabbitmq:3-management image, 有的话直接使用本地的, 没有的话去docker hub拉取, 然后用前面指定的参数启动.
注意, 在centos上通过docker启动rabbitmq的时候, 需要指定两个端口的映射:
- 一个是web管理页面的访问端口, -p 8080:15672, 这样在其他机器上, 比如我本地的win10上, 就可以通过8080端口访问rabbitmq的管理页面
- 只要你的生产者和消费者不都在这台服务器上, 你就需要指定外网可访问的端口供生产者和消费者访问, -p 5672:5672
用 dock启动rabbitmq之后, 会把 /var/lib/rabbitmq/mnesia
作为volume, 官方说法如下:https://docs.docker.com/samples/library/rabbitmq/
外部也可以访问, 怎么访问? 可以先 docker inspect 容器id, 找到Mounts节点的sorce, 即是在centos上cd 去到的目录, 不过...访问也看不出啥, rabbitmq把它暴露出来只是为了每次重新用docker 启动rabbitmq的时候, 如果使用了持久化的queue(QueueDeclare的时候durable为true)和消息(BasicPublish时basicProperties.Persistent为true), 那么未消费的消息不至于丢失.