Rabbitmq 不以 docker-compose 启动

问题描述 投票:0回答:3

我面临下一个问题。我想在 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
.

打开rabbitmq

版本是:

docker-compose version 1.24.0, build 0aa59064

Docker version 19.03.5, build 633a0ea838

编辑

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

docker kubernetes rabbitmq
3个回答
3
投票

我很抱歉一年后把这个问题搞砸了,但我刚刚遇到了同样的问题,所以我希望它能帮助别人 :)

TL;博士 使用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)

说来话长

使用 rabbitmq:3-management 图像和 docker-compose.yml 在 docker 日志中产生以下输出:

输出到最后一行后停止

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

日志实际上看起来很不一样:

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

现在,如果我们将 docker-compose.yml 中的图像从 rabbitmq:3-management 更改为 rabbitmq:3-management-alpine(参见 TL;DR 示例)并运行

docker compose up --detach
,日志输出看起来很漂亮很像
docker run ... rabbitmq:3-management
,而且,代理接口和管理插件接口在本地主机上分别使用端口 5672 和 15672 工作得很好。


1
投票

请稍等一会儿 rabbitmq 需要时间来启动试试这个对我有用

version: "3"

services:

  rabbitmq:
    image: rabbitmq:3-management
    command: rabbitmq-server
    expose:
      - 5672
      - 15672
    healthcheck:
      test: [ "CMD", "nc", "-z", "localhost", "5672" ]
      interval: 5s
      timeout: 15s
      retries: 1

  worker:
    image: worker
    restart: on-failure
    depends_on:
      - rabbitmq

1
投票

使用 docker-compose.yml 运行 RabbitMQ 非常简单

docker-compose.yml

version: '2'
services:
  rabbit:
    image: rabbitmq:3.7.2-management
    environment:
      RABBITMQ_DEFAULT_VHOST: rabbitmq-host
    ports:
      - 5672:5672
      - 15672:15672

您可以简单地使用命令启动 docker compose 文件

docker-compose up

等待 30 秒,然后在浏览器中点击 http://localhost:15672/。您可以使用 guest 作为默认用户名和密码。您可以在下面的 GitHub

中找到示例 Spring Boot RabbitMQ 示例

https://github.com/nidhishkrishnan/messaging

© www.soinside.com 2019 - 2024. All rights reserved.