首页 > 解决方案 > Rabbitmq 不以 docker-compose 开头

问题描述

我面临下一个问题。我想在 docker 容器中运行 rabbitmq。当我使用下一个命令运行 docker image 时:

docker run -it --rm --name rabbit -e RABBITMQ_DEFAULT_USER=aaa -e RABBITMQ_DEFAULT_PASS=aaa -p 5672:5672 -p 15672:15672 rabbitmq:3-management

它工作得很好。但我无法在 docker-compose 中运行它。有我的docker-compose.yml

version: "3"

services:
  rabbitmq3:
    image: rabbitmq:3-management
    container_name: rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=aaa
      - RABBITMQ_DEFAULT_PASS=aaa
    ports:
      - 15672:15672
      - 5672:5672

我使用docker-compose up --build命令。日志没问题,但我无法在localhost:15672.

版本是:

docker-compose version 1.24.0, build 0aa59064

Docker version 19.03.5, build 633a0ea838

编辑

我认为,日志很好,但我不确定。请在这里查看

标签: dockerrabbitmq

解决方案


很抱歉一年后把这个问题提高了,但我刚刚遇到了同样的问题,所以我希望它对某人有所帮助:)

TL;DR 使用rabbitmq:3-management-alpine图像而不是 rabbitmq:3-management为我解决了这个问题。

这是我的 docker-compose.yml

version: "3.9"
services:
  my-rabbit:
    image: rabbitmq:3-management-alpine
    container_name: my-rabbit
    hostname: my-rabbit-host
    ports:
      - "15672:15672"
      - "5672:5672"
    volumes:
      - "./rabbitdata:/var/lib/rabbitmq"

运行docker compose --detach管理插件界面后,代理本身在 http://localhost:15672 可用(代理为 tcp localhost:5672)

漫长的故事

在 docker-compose.yml 中使用rabbitmq:3-management镜像会在 docker 日志中产生以下输出: rabbitmq:3-management 的日志输出与 docker-compose.yml

输出在最后一行之后停止

01 19:20:07.852760+00:00 [noti] <0.299.0> WAL: ra_log_wal init, open tbls: ra_log_open_mem_tables, closed tbls: ra_log_closed_mem_tables

经纪人和管理插件都不可用。

但是,在运行以下命令后(使用与 docker-compose.yml 中相同的参数)

docker run -d --hostname my-rabbit-host -p 15672:15672 -p 5672:5672 --name my-rabbit -v rabbitdata:/var/lib/rabbitmq rabbitmq:3-management

日志实际上看起来完全不同:

使用 shell 命令运行 rabbitmq:3-management 后的 Docker 日志

人们可能会注意到,服务器实际上已经启动,之后代理和管理 UI 都可以访问了!

现在,如果我们将 docker-compose.yml 中的图像从rabbitmq:3-management更改为rabbitmq:3-management-alpine(参见 TL;DR 示例)并运行docker compose up --detach,日志输出看起来很像使用docker run ... rabbitmq:3-management, 并且,再一次,代理接口和管理插件接口在本地主机上都可以正常工作,分别使用端口 5672 和 15672。


推荐阅读