最近练习一个项目,需要用到docker容器来方便的使用rabbitmq、redis等器件。但由于刚接触docker,很多东西都不了解,所以踩了很多坑,这里记录一个关于rabbitmq的坑,如有不正确的地方欢迎大家指正。

目的:想要查看rabbitmq的运行情况

我试了如下图所示的三种方式都不行:

cp docker 找不到 docker找不到容器_docker


所以猜测是没有启动rabbitmq镜像,所以先进行启动

启动过程

1.先查看本地下载好的rabbitmq镜像版本:docker images。我使用的项目需要使用控制台界面,因此安装的是management版本

cp docker 找不到 docker找不到容器_cp docker 找不到_02


2.启动命令:docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p5672:5672 docker.io/rabbitmq:3-management

回车后刚开始出现如下红框中的镜像编号,原以为启动成功,没想到隐藏了个bug。遇到的问题:编号输出一会儿后出现了红框下方的问题,显示启动失败。Error starting。。。。。。。

cp docker 找不到 docker找不到容器_rabbitmq_03


使用docker ps | grep rabbitmq也没有运行中的rabbitmq容器。

身为docker小白顿时一脸茫然,首先想到重新启动,重新输入启动的命令,结果报如下错误,说容器已存在,但docker ps并没有发现rabbitmq容器。

cp docker 找不到 docker找不到容器_重新启动_04


自己解决失败,只好求助百度。经过百度后发现是listen tcp:0.0.0.0:5672报错,按照百度的方式进行如下操作,最终解决。

解决步骤

1.使用命令查看是否有这个进程:netstat -tanlp。发现有,如下图红框中所示。**由于tcp占用了15672这个端口,所以rabbitmq无法再使用这个端口进行监听。**因此要把这个tcp中的端口杀死。

cp docker 找不到 docker找不到容器_cp docker 找不到_05


2.通过上图得知,tcp:0.0.0.0:5672的tcp号为7919,使用命令将其杀死:sudo kill 7919。

cp docker 找不到 docker找不到容器_重新启动_06

3.重新启动rabbitmq容器,发现还是报容器已存在的错误,于是先根据提示的编号手动删除容器。

cp docker 找不到 docker找不到容器_重新启动_07

4.再重新启动容器即可。

cp docker 找不到 docker找不到容器_重新启动_08