RabbitMQ 安装说明(Docker)
使用命令行
在此示例中,我们将创建一个 RabbitMQ 客户端实例,该实例将连接到与客户端在同一码头网络上运行的服务器实例。
步骤1: 创建一个网络
docker network create app-tier --driver bridge
步骤2:启动RabbitMQ服务器实例
使用--network app-tier
对 的论证docker run
命令将 RabbitMQ 容器附加到app-tier
网络。
docker run -d --name rabbitmq-server \
--network app-tier \
bitnami/rabbitmq:latest
步骤 3:启动 RabbitMQ 客户端实例
最后,我们创建一个新的容器实例来启动 RabbitMQ 客户端,并连接到上一步中创建的服务器:
docker run -it --rm \
--network app-tier \
bitnami/rabbitmq:latest rabbitmqctl -n rabbit@rabbitmq-server status
使用 Docker Compose 文件
未指定时,Docker Compose 会自动设置新网络,并将所有部署的服务附加到该网络。但是,我们将明确定义一个新的bridge网络命名app-tier. .在本例中,我们假设您希望从您自己的自定义应用程序映像连接到 RabbitMQ 服务器,该映像在以下代码片段中通过服务名称标识。myapp. .
version: '2'
networks:
app-tier:
driver: bridge
services:
rabbitmq:
image: 'bitnami/rabbitmq:latest'
networks:
- app-tier
myapp:
image: 'YOUR_APPLICATION_IMAGE'
networks:
- app-tier
IMPORTANT重要事项:
请使用您的应用程序图像更新上述片段中的 YOU_APPLICATION_IMAGE 占位符
在应用程序容器中,使用主机名rabbitmq连接到 RabbitMQ 服务器
使用以下方法启动容器:
docker-compose up -d
配置
环境变量
可定制环境变量
名称 | 描述 | 默认值 |
---|---|---|
RABBITMQ_CONF_FILE | RabbitMQ 配置文件。 | ${RABBITMQ_CONF_DIR}/rabbitmq.conf |
RABBITMQ_DEFINITIONS_FILE | 是否加载外部 RabbitMQ 定义。这与安全设置 RabbitMQ 密码不兼容。 | /app/load_definition.json |
RABBITMQ_SECURE_PASSWORD | 是否安全设置RabbitMQ密码。这与加载外部 RabbitMQ 定义不兼容。 | no |
RABBITMQ_CLUSTER_NODE_NAME | RabbitMQ 群集节点名称。指定此功能时,请确保您还指定有效的主机名,因为 RabbitMQ 将无法启动。 | nil |
RABBITMQ_CLUSTER_PARTITION_HANDLING | RabbitMQ 群集分区恢复机制。 | ignore |
RABBITMQ_DISK_FREE_RELATIVE_LIMIT | RabbitMQ 存储数据的分区的磁盘相对自由空间限制。 | 1.0 |
RABBITMQ_DISK_FREE_ABSOLUTE_LIMIT | RabbitMQ 存储数据的分区的磁盘绝对空闲空间限制(优先于相对限制)。 | nil |
RABBITMQ_ERL_COOKIE | Erlang cookie 以确定是否允许不同的节点相互通信。 | nil |
RABBITMQ_VM_MEMORY_HIGH_WATERMARK | 高内存水印为RabbitMQ阻止发布者,并防止新消息被排队。可以指定为绝对值或相对值(百分比或值在0到1之间)。 | nil |
RABBITMQ_LOAD_DEFINITIONS | 是否加载外部 RabbitMQ 定义。这与安全设置 RabbitMQ 密码不兼容。 | no |
RABBITMQ_MANAGEMENT_BIND_IP | RabbitMQ 管理服务器绑定 IP 地址。 | 0.0.0.0 |
RABBITMQ_MANAGEMENT_PORT_NUMBER | RabbitMQ 管理服务器端口号。 | 15672 |
RABBITMQ_MANAGEMENT_ALLOW_WEB_ACCESS | 允许 Web 访问 RABBITMQ_USERNAME 的 RabbitMQ 管理门户 | false |
RABBITMQ_NODE_NAME | RabbitMQ 节点名称。 | rabbit@localhost |
RABBITMQ_USE_LONGNAME | 是否使用完全限定的名称来识别节点 | false |
RABBITMQ_NODE_PORT_NUMBER | RabbitMQ 节点端口号。 | 5672 |
RABBITMQ_NODE_TYPE | RabbitMQ 节点类型。 | stats |
RABBITMQ_VHOST | RabbitMQ vhost 的相关歌曲 | / |
RABBITMQ_VHOSTS | 附加虚拟主机(vhost)列表。 | nil |
RABBITMQ_CLUSTER_REBALANCE | 重新平衡 RabbitMQ 群集。 | false |
RABBITMQ_CLUSTER_REBALANCE_ATTEMPTS | Max 尝试重新平衡检查以运行 | 100 |
RABBITMQ_USERNAME | RabbitMQ用户名。 | user |
RABBITMQ_PASSWORD | RabbitMQ 用户密码。 | bitnami |
RABBITMQ_FORCE_BOOT | 强制一个节点启动,即使它不是最后一个关闭 | no |
RABBITMQ_ENABLE_LDAP | 启用 LDAP 配置。 | no |
RABBITMQ_LDAP_TLS | 启用安全的 LDAP 配置。 | no |
RABBITMQ_LDAP_SERVERS | LDAP服务器主机名的逗号、半正值或空格分隔列表。 | nil |
RABBITMQ_LDAP_SERVERS_PORT | LDAP 服务器端口。 | 389 |
RABBITMQ_LDAP_USER_DN_PATTERN | DN 用于以 cn=$${username}、dc=example,dc=org 的形式绑定到 LDAP。 | nil |
RABBITMQ_NODE_SSL_PORT_NUMBER | 用于 SSL 连接的 RabbitMQ 节点端口号。 | 5671 |
RABBITMQ_SSL_CACERTFILE | RabbitMQ 服务器 SSL CA 证书文件的路径。 | nil |
RABBITMQ_SSL_CERTFILE | RabbitMQ 服务器 SSL 证书文件的路径。 | nil |
RABBITMQ_SSL_KEYFILE | RabbitMQ 服务器 SSL 证书密钥文件的路径。 | nil |
RABBITMQ_SSL_DEPTH | 在有效认证路径中可能遵循同行证书的非自颁发中间证书的最大数量。 | nil |
RABBITMQ_SSL_FAIL_IF_NO_PEER_CERT | 是否拒绝 TLS 连接,如果客户端未能提供证书。 | no |
RABBITMQ_SSL_VERIFY | 是否启用对等 SSL 证书验证。有效值: ridy_none, ridate_peer。 | verify_none |
RABBITMQ_MANAGEMENT_SSL_PORT_NUMBER | 用于 SSL/TLS 连接的 RabbitMQ 管理服务器端口号。 | 15671 |
RABBITMQ_MANAGEMENT_SSL_CACERTFILE | RabbitMQ 管理服务器 SSL CA 证书文件。 | $RABBITMQ_SSL_CACERTFILE |
RABBITMQ_MANAGEMENT_SSL_CERTFILE | RabbitMQ 服务器 SSL 证书文件的路径。 | $RABBITMQ_SSL_CERTFILE |
RABBITMQ_MANAGEMENT_SSL_KEYFILE | RabbitMQ 管理服务器 SSL 证书密钥文件的路径。 | $RABBITMQ_SSL_KEYFILE |
RABBITMQ_MANAGEMENT_SSL_DEPTH | 对于 RabbitMQ 管理服务器,在有效认证路径中可能遵循对等证书的非自颁发中间证书的最大数量。 | nil |
RABBITMQ_MANAGEMENT_SSL_FAIL_IF_NO_PEER_CERT | 是否拒绝 TLS 连接,如果客户端未能为 RabbitMQ 管理服务器提供证书。 | yes |
RABBITMQ_MANAGEMENT_SSL_VERIFY | 是否为 RabbitMQ 管理服务器启用对等 SSL 证书验证。有效值: ridy_none, ridate_peer。 | verify_peer |
只读环境变量
名称 | 描述 | 价值 |
---|---|---|
RABBITMQ_VOLUME_DIR | 持久性基目录。 | /bitnami/rabbitmq |
RABBITMQ_BASE_DIR | RabbitMQ 安装目录。 | /opt/bitnami/rabbitmq |
RABBITMQ_BIN_DIR | RabbitMQ 可执行文件目录。 | ${RABBITMQ_BASE_DIR}/sbin |
RABBITMQ_DATA_DIR | RabbitMQ 数据目录。 | ${RABBITMQ_VOLUME_DIR}/mnesia |
RABBITMQ_CONF_DIR | RabbitMQ 配置目录。 | ${RABBITMQ_BASE_DIR}/etc/rabbitmq |
RABBITMQ_DEFAULT_CONF_DIR | RabbitMQ 默认配置目录。 | ${RABBITMQ_BASE_DIR}/etc/rabbitmq.default |
RABBITMQ_CONF_ENV_FILE | 用于环境变量的 RabbitMQ 配置文件。 | ${RABBITMQ_CONF_DIR}/rabbitmq-env.conf |
RABBITMQ_HOME_DIR | RabbitMQ home 目录。 | ${RABBITMQ_BASE_DIR}/.rabbitmq |
RABBITMQ_LIB_DIR | RabbitMQ lib 目录。 | ${RABBITMQ_BASE_DIR}/var/lib/rabbitmq |
RABBITMQ_INITSCRIPTS_DIR | RabbitMQ init 脚本目录。 | /docker-entrypoint-initdb.d |
RABBITMQ_LOGS_DIR | RabbitMQ 日志目录。 | ${RABBITMQ_BASE_DIR}/var/log/rabbitmq |
RABBITMQ_PLUGINS_DIR | RabbitMQ 插件目录。 | ${RABBITMQ_BASE_DIR}/plugins |
RABBITMQ_MOUNTED_CONF_DIR | RabbitMQ 目录,用于挂载配置文件。 | ${RABBITMQ_VOLUME_DIR}/conf |
RABBITMQ_DAEMON_USER | RabbitMQ 系统用户名。 | rabbitmq |
RABBITMQ_DAEMON_GROUP | RabbitMQ 系统用户组。 | rabbitmq |
RABBITMQ_MNESIA_BASE | RabbitMQ mnesia 目录的路径。 | $RABBITMQ_DATA_DIR |
RABBITMQ_COMBINED_CERT_PATH | RabbitMQ 服务器 SSL 证书密钥文件的路径。 | ${RABBITMQ_COMBINED_CERT_PATH:-/tmp/rabbitmq_combined_keys.pem} |
启动 barbitmq 映像时,可以通过在 docker-compose 文件或 docker-compose 文件上传递一个或多个环境变量来调整实例的配置。docker run 命令行。如果要添加新的环境变量:
- 对于 docker-compose ,在应用程序部分下添加变量名称和值docker-compose.yml
文件存在于此存储库中:rabbitmq: ... environment: - RABBITMQ_PASSWORD=my_password ...
- 手动执行 添加 a-e选项与每个变量和值。
设置群集
使用 Docker Compose
这是使用群集配置运行 RabbitMQ 的最简单方法:
步骤 1:在您的中添加统计节点 docker-compose.yml
将下面的片段复制到 docker-compose.yml 中,将 RabbitMQ 统计节点添加到群集配置中。
version: '2'
services:
stats:
image: bitnami/rabbitmq
environment:
- RABBITMQ_NODE_TYPE=stats
- RABBITMQ_NODE_NAME=rabbit@stats
- RABBITMQ_ERL_COOKIE=s3cr3tc00ki3
ports:
- '15672:15672'
volumes:
- 'rabbitmqstats_data:/bitnami/rabbitmq/mnesia'
注意: 服务(stats) 的名称很重要,因此节点可以解析要群集的主机名。(注意节点名称为rabbit@stats)
步骤 2:在配置中添加队列节点
更新您想要使用 RabbitMQ 统计节点群集的节点的定义。
queue-disc1:
image: bitnami/rabbitmq
environment:
- RABBITMQ_NODE_TYPE=queue
Note: the README for this container is longer than the DockerHub length limit of 25000, so it has been trimmed. The full README can be found at https://github.com/bitnami/containers/blob/main/bitnami/rabbitmq/README.md
最后编辑:Jeebiz 更新时间:2025-04-24 19:00