簡體   English   中英

如何使用 docker 容器在瀏覽器中打開 rabbitmq?

[英]How to open rabbitmq in browser using docker container?

這可能已經被問過了,但到目前為止我根本找不到任何詳細的解釋,現有的文檔似乎是為某種應該知道一切的通靈者編寫的。

根據本手冊,我添加了容器

docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:latest

然后我檢查它以接收容器 ip

docker inspect some-rabbit

檢查端口與

docker ps

並嘗試使用此公式在瀏覽器中連接

https://{container-ip}:{port}

它沒有用。

我做錯了什么,或者我應該添加一些額外的東西,比如 apache 或其他東西的容器?

編輯

據我了解,在創建了一些兔子容器之后,現在我需要運行 Dockerfile 來創建圖像嗎? (這整件事讓我感到困惑)。 我該怎么做? 我的意思是,我看到了命令docker build -f /path/to/a/Dockerfile但是如果例如我將 Dockerfile 放在第二個路徑D:\Docker\rabbitmq ,我應該如何到達那里? (路徑似乎無法識別)

您使用了未啟用 rabbitmq_management 插件的錯誤圖像。 rabbitmq:latest更改為rabbitmq:management

dockerhub 上,他們使用以下命令:

docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3-management

如果您想訪問localhost:15672上的 UI,請確保通過在上述命令中添加-p 15672:15672來公開端口。

管理鏡像只是啟用了管理插件的 rabbitmq 最新鏡像。 這是rabbitmq的rabbitmq:management

FROM rabbitmq

RUN rabbitmq-plugins enable --offline rabbitmq_management

EXPOSE 15671 15672

首先,您需要管理映像(例如rabbitmq:3-management )才能通過瀏覽器訪問它。 如果您的 docker 在本地運行,那么您應該能夠通過導航到http://localhost:{port}http://127.0.0.1:{port} (默認為15672 )來訪問它。

這是一個簡單docker-compose.yml

version: "3"
services:
 rabbitmq:
    image: "rabbitmq:3-management"
    ports:
      - "5672:5672"
      - "15672:15672"
    volumes:
      - 'rabbitmq_data:/data'

volumes:
  rabbitmq_data:

啟動容器后,現在可以通過http://127.0.0.1:15672訪問 Rabbitmq。 默認用戶名和密碼應該是guest:guest 更多細節在這里

在此處輸入圖像描述

最好公開所有三個端口(5672、5673、15672)。

docker run -d --name some-rabbit -p 5672:5672 -p 5673:5673 -p 15672:15672 rabbitmq:3-management  

然后您可以使用用戶名和密碼的憑據“guest”瀏覽http://localhost:15672/

如果您使用類似以下內容啟動rabbitmq:

docker run -d --name some-rabbit -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15672:15672 rabbitmq

然后您可以在該容器運行時使用以下命令啟用其管理插件:

docker container exec -it some-rabbit rabbitmq-plugins enable rabbitmq_management

並且管理 GUI 在http://localhost:15672上運行用於管理 GUI

用戶名: guest

密碼: guest

撰寫就像

version: '3'
services:
  rabbitmq:
    image: rabbitmq:management
    ports:
      - '5672:5672'
      - '15672:15672'
    volumes:
      - rabbitmq_data

而不是http://localhost:15672你會想要使用你的 docker 實例正在運行的 ip。 在 Windows 上運行:

ipconfig

使用下面突出顯示的 ip 地址: 在此處輸入圖像描述

然后嘗試http://10.0.75.1 :{your-rabbitmq-port}

在當前版本 (20.10.12) 中,我必須使用以下方法提取啟用了最新管理插件的圖像:

docker pull rabbitmq:management

然后使用命令運行(此命令同時執行拉取和運行):

docker run -p 15672:15672 -p 5672:5672 --name rabbit-image-name rabbitmq:management

導航到: http://localhost:15672/

有效!

確保在啟動之前停止其他容器映像。

我使用以下命令並在其中定義了用戶名和密碼我還暴露了端口 5673 和 15673 你需要輸入你的用戶名和密碼

docker run -d --name same-rabbit \
--hostname my-rabbit \
-e RABBITMQ_DEFAULT_USER=USERNAME \
-e RABBITMQ_DEFAULT_PASS=PASSWORD \
-v /home/USER/rabbitmq/:/var/lib/rabbitmq \
-p 5673:5672 \
-p 15673:15672 \
rabbitmq:management

您還可以使用以下 docker compose

version: '3.3'
services:
    rabbitmq:
        container_name: same-rabbit
        environment:
            - RABBITMQ_DEFAULT_USER=USERNAME
            - RABBITMQ_DEFAULT_PASS=PASSWORD
        volumes:
            - '/home/USER/rabbitmq/:/var/lib/rabbitmq'
        ports:
            - '5673:5672'
            - '15673:15672'
        image: 'rabbitmq:management'
FROM rabbitmq:3.8-management
RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp
WORKDIR /usr/src/app
ENV RABBITMQ_ERLANG_COOKIE: 'secret cookie here'
VOLUME ~/.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/mnesia/
EXPOSE 5672 15672
  1. 碼頭工人建造。 -t 兔子-MQ
  2. docker run -it -p 5672:5672 -p 15672:15672 rabbit-mq

就我而言,我可以訪問 RabbitMQ 的 UI 幾天,但有一天它突然停止工作,我無法再訪問它了。

經過一番調查,發現了這個問題的根源。 這是 docker 的主要服務以某種方式停止了。

因此,如果您可以訪問 UI,但一段時間后無法訪問,請轉到任務管理器並搜索Docker.Service以查看它是否正在運行,如下圖所示。

在此處輸入圖像描述

如果你沒有看到它,你應該手動運行它。 在我的情況下,我將它放在我的桌面上,它被稱為“Docker for Windows”。

我看到了一些有用的答案,但沒有提到如何使用容器的 IP 地址訪問服務器(rabbitmq)。 對於尋求此解決方案的人...

  • 確保你的 rabbitmq 鏡像在容器上運行:docker docker inspect
  • [container-id] 並向下滾動以找到容器的 IP 地址。
  • 添加路由以包含的 IP 地址見`<

: github問題

請嘗試使用版本 3,在對 3.8 進行了艱苦的試驗后,下面的文章也適用於我

https://blog.devgenius.io/rabbitmq-with-docker-on-windows-in-30-minutes-172e88bb0808

使用 Java,您可以使用 lib Testcontainers RabbitMQ Module 使用 Scala 引導的示例:

  val rabbitMQContainer = new RabbitMQContainer("rabbitmq:management")
  rabbitMQContainer.start()
  if (os == "mac os x") Process(s"open ${rabbitMQContainer.getHttpUrl}").! 

然后使用 guest:guest 登錄

完整示例: https ://github.com/pbernet/akka_streams_tutorial/blob/master/src/main/scala/alpakka/amqp/AmqpEcho.scala

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM