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无法运行java虚拟机报错There is insufficient memory for the Java Runtime_第1张图片

Docker无法运行java虚拟机报错There is insufficient memory for the Java Runtime_第2张图片

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

升级步骤

1.关闭所有docker容器

一定要关闭所有docker容器,再关闭docker服务,不然可能会出现各种问题

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无法运行java虚拟机报错There is insufficient memory for the Java Runtime_第3张图片

runc版本已成功升级 

你可能感兴趣的:(docker,java,容器)