[英]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
然后嘗試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
有效!
確保在啟動之前停止其他容器映像。
我使用以下命令並在其中定義了用戶名和密碼我還暴露了端口 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
我看到了一些有用的答案,但沒有提到如何使用容器的 IP 地址訪問服務器(rabbitmq)。 對於尋求此解決方案的人...
docker inspect
: 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.