Docker无法运行java虚拟机报错There is insufficient memory for the Java Runtime

这篇具有很好参考价值的文章主要介绍了Docker无法运行java虚拟机报错There is insufficient memory for the Java Runtime。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近遇到镜像导入到docker后无法启动容器的问题,但是上传到别的服务器上面又可以正常启动容器,报错信息大概如下:

There is insufficient memory for the Java Runtime Environment to continue.
Cannot create GC thread. Out of system resources.
An error report file with more information is saved as:

看上去是说服务器资源不足,内存不够,但是执行free -h查看了一下内存并没有不足。

最后知道这个报错是由于docker创建的容器内核版本太低的问题,执行命令查看内核版本:

docker version

如果不是使用root账号,命令需要加上sudo,信息如下:

docker运行javacv报错延缓,docker,java,容器

docker运行javacv报错延缓,docker,java,容器

 操作系统是amd64,其中runc的版本为1.0.0-rc8,需要将其升级为1.0.0-rc95

升级步骤

1.关闭所有docker容器

一定要关闭所有docker容器,再关闭docker服务,不然可能会出现各种问题,如果出现这种情况,按下面的方式解决:

 启动docker报错如下:

linux> Error response from daemon: mkdir /run/containerd/io.containerd.runtime.v1.linux/moby/189aafa489967asdf23664d32f9e33e121a7b3b6e789d8642345678dfg6ebe13cb: file exists: unknown
linux> Error: failed to start containers: xxx容器id

解决方式:

# 执行
linux> ps aux | grep 189aafa489967asdf23664d32f9e33e121a7b3b6e789d8642345678dfg6ebe13cb
# 输出
linux> root      6358  0.0  0.0 108748  4136 ?        Sl   Oct27   1:50 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/189aafa489967asdf23664d32f9e33e121a7b3b6e789d8642345678dfg6ebe13cb -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-nvidia
# kill掉再重新start容器即可
kill 6358

 启动docker报错如下:

Error response from daemon: id already in use

解决方式:

docker运行javacv报错延缓,docker,java,容器

docker stop 容器名称

2.关闭docker服务

#关闭docker服务,可能需要sudo
systemctl stop docker

3.将runc.amd64文件上传到 /usr/bin 目录下

https://download.csdn.net/download/qq_36635569/88067320

4.备份/usr/bin目录下原有的runc文件

cp /usr/bin/runc /备份目录

5.将runc.amd64文件重命名为runc,并赋予执行权限

mv runc.amd64 runc
chmod 777 runc

6.启动docker服务

systemctl start docker

 7.查看docker是否启动成功,执行docker version

docker运行javacv报错延缓,docker,java,容器

runc版本已成功升级 文章来源地址https://www.toymoban.com/news/detail-808834.html

到了这里,关于Docker无法运行java虚拟机报错There is insufficient memory for the Java Runtime的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包