docker 容器使用 rabbitmq 的时候,加了bash 参数会无法访问

发布于 2022-09-13 01:18:52 字数 1778 浏览 39 评论 0

问题概括

我想知道为什么加了 bash 参数无法正确访问了?

问题描述

花了一个图,首先我用一台 AMD 5700G 的电脑(ip地址:192.168.31.245) 去访问 rabbitmq。
rabbitmq 运行在一台树莓派(ip地址:192.168.31.203)上,不过不是原生运行(apt),而是使用了 docker 。

根据 rabbitmq 官方上的 docker 安装命令:

命令如下:

docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management

可以把 rabbitmq 跑起来了,并且在 AMD 5700G 的电脑的浏览器中输入 http://192.168.31.203:15672 可以正确看到那个 rabbitmq 的界面

但是因为我是除了 docker 初学者的阶段,所以我们删除了 docker run 中的 --rm 参数选项

docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management

改为

docker run -it --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management

跑起来照样没有问题

为了更进一步研究该镜像中有什么内容,我选择加一个 bash 参数选项

sudo docker run -it --name rabbitmq_on_bash -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management bash

所以,现在有两个容器:
容器一:不带 bash 参数,可以正确访问 http://192.168.31.203:15672

docker run -it --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management

容器二:带 bash 参数,无法访问 http://192.168.31.203:15672

sudo docker run -it --name rabbitmq_on_bash -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management bash

我想知道为什么加了 bash 参数无法正确访问了?

rabbitmq-docker.png

image.png

TIPS:没有同时运行两个容器,都想先关闭某一个在运行另一个的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你另情深 2022-09-20 01:18:52

首先,我想你不会同时启动这两个容器,共用一端口不可能两个都同时被访问到。
其次,rabbitmq启动也需要指令。通常应是通过Docker 的CMD 或 ENTRYPOINT 指定。如果命令行有参数,通常会把CMD替换成命令行参数。

即:

  • CMD: 启动容器后,提供默认命令及参数 (不一定会执行,只是默认) 会被docker run 后面参数替换
  • ENTRYPOINT: 启动容器时执行(一定会执行)

因此要看你的容器镜像打包的Dockerfile是如何写的。

维持三分热 2022-09-20 01:18:52

我怀疑你进入容器之后阻塞住了管理面板。
》---
刚才在群里说来着,你可以直接换种方式呀
一样的效果。
后台启动,然后exec进去即可

$ docker run -it -d --name rabitmq_bash -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management

$ docker exec -it rabitmq_bash bash
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文