docker启动rocketmq-dashboard报错:library initialization failed - out of memoryAborted (core dumped)
·
问题描述:
使用Docker启动rocketmq-dashboard 的时候, 容器在启动几秒后自动退出 , 或者不退出,但里面的服务无法启动成功。出现了如下报错

我使用的启动命令为:
docker run -d --name rocketmq-dashboard -p 8066:8080 --network rocketmq -e "JAVA_OPTS=-Xmx200M -Xms200M -Xmn100M -Drocketmq.namesrv.addr=14.103.234.208:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" apacherocketmq/rocketmq-dashboard
官网的启动命令:
docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876" -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest
按道理来说是没有问题了,既是我不设置jvm内存配置,也会报内存不足的错误导致无法启动
解决方式:
查了下资料加上了以下参数:
--ulimit nofile=60000:60000 --ulimit nproc=60000:60000
完整启动命令:
docker run --ulimit nofile=60000:60000 --ulimit nproc=60000:60000 -d --name rocketmq-dashboard -p 8066:8080 --network rocketmq -e "JAVA_OPTS=-Xmx200M -Xms200M -Xmn100M -Drocketmq.namesrv.addr=14.103.234.208:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" apacherocketmq/rocketmq-dashboard
然后就可以正常启动了
总结:
调整ulimit值
临时调整:
在启动容器时,可以通过docker run命令添加--ulimit参数来临时调整文件描述符的限制:
docker run --ulimit nofile=60000:60000 --ulimit nproc=60000:60000 your_image
永久调整:
编辑Docker的systemd配置文件/etc/systemd/system/docker.service.d/override.conf,添加默认的ulimit配置:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --default-ulimit nofile=60000:60000 --default-ulimit nproc=60000:60000 -H fd://
重启Docker服务:
systemctl daemon-reload
systemctl restart docker更多推荐


所有评论(0)