文章目录
Docker - rabbitmq 镜像详解,以及rabbitmq 的运行指令
1、rabbitmq 简单说明
RabbitMQ是实现高级消息队列协议(AMQP)的开源消息代理软件(有时称为面向消息的中间件)。RabbitMQ服务器是用Erlang编程语言编写的,并建立在Open Telecom Platform框架上,用于集群和故障转移。与代理接口的客户端库适用于所有主要编程语言。
2、如何使用rabbitmq 的docker 镜像
--hostname
: rabbitmq 镜像基于节点名称存储数据,而这个节点名称默认为主机的名称,这代表着我们在使用rabbitmq 镜像时,应该尽可能的指定主机的名称,通过--hostname
来指定。这样我们就跟踪我们的数据,不然docker 会给主机一个随机的名字
进行简单运行
docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3
3、rabbitmq 的运行内存限制
首先,容器本身需要占用内存,他可以被显式的指定,比如我们可以在运行时,指定某个容器的运行内存最大为多少 通过 --memory/ -m
进行指定
我们通过设置容器的环境变量RABBITMQ_VM_MEMORY_HIGH_WATERMARK
来指定rabbitmq 的最大运行内存。
示例值如下
0.49
:占用容器49%的内存
50%
:占用容器50%的内存
1073741824
:占用容器1073741824 字节的内存
1024MiB
:占用容器1024 MB的内存
当以百分比设置时,百分比的内存值是容器的内存值,而不是docker 的,更加不是宿主机的
4、设置基于集群 环境下的 Erlang Cookie
通过环境变量 RABBITMQ_ERLANG_COOKIE
进行设置
-e RABBITMQ_ERLANG_COOKIE="你的cookie"
5、rabbitmq 镜像的环境变量列表
1、不带管理界面的镜像
SSL 配置
RABBITMQ_SSL_CACERTFILE
RABBITMQ_SSL_CERTFILE
RABBITMQ_SSL_DEPTH
RABBITMQ_SSL_FAIL_IF_NO_PEER_CERT
RABBITMQ_SSL_KEYFILE
RABBITMQ_SSL_VERIFY
2、带管理界面的镜像
SSL 配置
RABBITMQ_MANAGEMENT_SSL_CACERTFILE
RABBITMQ_MANAGEMENT_SSL_CERTFILE
RABBITMQ_MANAGEMENT_SSL_DEPTH
RABBITMQ_MANAGEMENT_SSL_FAIL_IF_NO_PEER_CERT
RABBITMQ_MANAGEMENT_SSL_KEYFILE
RABBITMQ_MANAGEMENT_SSL_VERIFY
设置初始化的帐号,密码
RABBITMQ_DEFAULT_USER
RABBITMQ_DEFAULT_PASS
3、共有变量
设置默认的虚拟主机
RABBITMQ_DEFAULT_VHOST
6、Alpine Linux 镜像
默认情况下,rabbitmq 镜像使用完备的Linux 系统镜像作为基础镜像,但是为了更加小的体积,rabbitmq 提供了针对Alpine Linux 的镜像, Alpine Linux 基础镜像只有大约5MB,当为了足够小的磁盘占用时,应该使用此变体镜像
需要注意的点
Alpine Linux 镜像变体使用了musl libc而不是glibc和friends,因此某些软件可能会遇到问题,具体取决于其libc要求的深度。但是,大多数软件对此没有问题,因此,此变体通常是非常安全的选择