最近练习一个项目,需要用到docker容器来方便的使用rabbitmq、redis等器件。但由于刚接触docker,很多东西都不了解,所以踩了很多坑,这里记录一个关于rabbitmq的坑,如有不正确的地方欢迎大家指正。
目的
:想要查看rabbitmq的运行情况
我试了如下图所示的三种方式都不行:
所以猜测是没有启动rabbitmq镜像,所以先进行
启动
。
启动过程
:
1.先查看本地下载好的rabbitmq镜像版本:docker images。我使用的项目需要使用控制台界面,因此安装的是management版本
2.启动命令:docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p5672:5672 docker.io/rabbitmq:3-management
回车后刚开始出现如下红框中的镜像编号,原以为启动成功,没想到隐藏了个bug。
遇到的问题
:编号输出一会儿后出现了红框下方的问题,显示启动失败。Error starting。。。。。。。
使用docker ps | grep rabbitmq也没有运行中的rabbitmq容器。
身为docker小白顿时一脸茫然,首先想到重新启动,重新输入启动的命令,结果报如下错误,说容器已存在,但docker ps并没有发现rabbitmq容器。
自己解决失败,只好求助百度。经过百度后发现是listen tcp:0.0.0.0:5672报错,按照百度的方式进行如下操作,最终解决。
解决步骤
:
1.使用命令查看是否有这个进程:netstat -tanlp。发现有,如下图红框中所示。**由于tcp占用了15672这个端口,所以rabbitmq无法再使用这个端口进行监听。**因此要把这个tcp中的端口杀死。
2.通过上图得知,tcp:0.0.0.0:5672的tcp号为7919,使用命令将其杀死:sudo kill 7919。
3.重新启动rabbitmq容器,发现还是报容器已存在的错误,于是先根据提示的编号手动删除容器。
4.再重新启动容器即可。
最近练习一个项目,需要用到docker容器来方便的使用rabbitmq、redis等器件。但由于刚接触docker,很多东西都不了解,所以踩了很多坑,这里记录一个关于rabbitmq的坑,如有不正确的地方欢迎大家指正。目的:想要查看rabbitmq的运行情况我试了如下图所示的三种方式都不行:所以猜测是没有启动rabbitmq镜像,所以先进行启动。启动过程:1.先查看本地下载好的rabbitmq镜像版本:docker images。我使用的项目需要使用控制台界面,因此安装的是management版
设置阿里云镜像源
yum-config-manager --add-repo htt
ps
://mirrors.aliyun.com/
docker
-ce/linux/centos/
docker
-ce.repo
安装
Docker
-CE
yum install
docker
-ce
我们选择了STARS数最多的官方镜像,此处需要注意,默认
rabbitmq
镜像是不带web端管理插件的,所以指定了镜像tag为3.8-management,表示下载包含web管理插件版本镜像,其它Tag版本可以访问
Docker
Hub查询
二、创建
rabbitMq
容器
1.使用
docker
ima...
先查看以下镜像是否拉取
成功
,使用
docker
images命令查看所有镜像,如下图所示,
显示
的是已经拉取
成功
!
运行命令
启动
rabbitmq
服务并指定用户名密码
docker
run
-d --name
rabbitmq
-p 15672:15672 -p 5672:5672 -e
RABBITMQ
_DEFAULT_USER=admin -e
RABBITMQ
docker
pull
rabbitmq
:management
说明:为什么不直接安装
docker
pull
rabbitmq
这个,因为这个安装后,开启对应端口后是不能直接访问它的管理后台,需要额外的命令开启,后面会讲这种情况
容器
运行,对应的端口开启
docker
run
-di --name=mycloud_
rabbitmq
-p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:2567
- `-d` 表示在后台运行
容器
;
- `--name` 指定
容器
的名称为 `
rabbitmq
`;
- `-p` 指定
容器
的端口映射,将
容器
内部的 `5672` 和 `15672` 端口映射到主机的相应端口上;
- `
rabbitmq
` 是指要
启动
的镜像名称。
4. 等待一段时间后,可以使用以下命令查看
容器
是否正常运行:
docker
ps
如果看到 `
rabbitmq
`
容器
的状态为 `Up`,则表示
容器
已经
成功
启动
。
5. 最后,可以使用 `
docker
stop` 命令停止
容器
的运行:
docker
stop
rabbitmq
或者使用 `
docker
rm` 命令删除
容器
:
docker
rm
rabbitmq
注意:删除
容器
会同时删除
容器
内的数据,如果需要保留数据,可以使用 `
docker
commit` 命令将
容器
保存为镜像。
解决:管理员身份运行cmd出现mysql : 无法将“mysql”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。