最近在win10上安装了docker桌面版,在安装rabbitmq时遇见了rabbitmq容器启动后自动退出的问题,特记录一下。
按照常规步骤,(也是大多数博客的写法),安装rabbitmq(带web管理页面的),大致如下:
1.拉取rabbitmq镜像
docker pull rabbitmq:management
2.创建并启动容器
docker run -d -name rabbit -p 15672:15672 rabbitmq:management 其中: -d:后台运行 --name:指定容器名称 -p:将mq端口号映射到本地
3.查看docker容器运行情况,使用docker -ps 命令,可以看到rabbitmq容器确实运行成功,通过浏览器访问 http://localhost:15672 也能正常看到web管理页面。
但是,重点来了,过几分钟,再次访问web管理页面,会发现打不开了,再用docker ps命令,发现rabbitmq的容器也停止运行了。
经过一番百度,发现了原因:
docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出。
容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出。
解决方案:在容器启动时,后面加/bin/bash,所以上面启动rabbitmq容器的命令应该改为
docker run -d -name rabbit -p 15672:15672 rabbitmq:management /bin/bash
之前在B站看狂神的docker教程,在启动容器时一般也是加/bin/bash,当时对这个没特别留意。看来网上的很多博文也是写的很不严谨,自己实际使用时会遇到很多坑。
最后把docker删除容器的命令也放一下:
1)停止所有的容器(只停止单个时把后面的变量改为container id即可) docker stop $(docker ps -a -q) 2)删除所有的容器(只删除单个时把后面的变量改为container id即可) docker rm $(docker ps -a -q)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)