Rabbitmq不是从docker-compose开始的

rkue9o1l  于 2023-03-18  发布在  RabbitMQ
关注(0)|答案(3)|浏览(222)

我遇到了下一个问题。我想在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

编辑

我想,日志没问题,但我不确定。请检查一下here

jv4diomz

jv4diomz1#

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

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)上可用
"说来话长"
rabbitmq:3-managementimage与docker-composite.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-管理更改为rabbitmq:3-管理-高山(参见TL;DR示例)并运行docker compose up --detach,日志输出看起来与docker run ... rabbitmq:3-management非常相似,而且代理接口和管理插件接口在localhost上分别使用端口5672和15672时都能正常工作。

3ks5zfa0

3ks5zfa02#

请等待,而有时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
sd2nnvve

sd2nnvve3#

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

停靠-编写.yml

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

你可以简单地通过使用命令启动docker合成文件

docker-compose up

等待30秒,然后在浏览器中点击http://localhost:15672/。您可以使用guest作为默认用户名和密码。您可以在下面的GitHub中找到Sping Boot RabbitMQ示例
https://github.com/nidhishkrishnan/messaging

相关问题