为什么泊坞容器总是被杀死

时间:2018-05-19 13:39:42

标签: docker docker-compose

我正在尝试运行docker容器来启动springboot restful api:

docker run api:latest

然后以错误代码137退出,并在结尾处打印“Killed”:

2018-05-19 13:36:08.571  INFO 8 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-05-19 13:36:08.581  INFO 8 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 0
2018-05-19 13:36:08.737  INFO 8 --- [           main] b.c.e.u.UndertowEmbeddedServletContainer : Undertow started on port(s) 8080 (http)
2018-05-19 13:36:08.751  INFO 8 --- [           main] org.smarter.Application                  : Started Application in 8.63 seconds (JVM running for 9.454)
Killed

我没有指定任何资源限制,为什么退出错误代码137?

1 个答案:

答案 0 :(得分:1)

如果您的Docker镜像正在运行JDK8u131 +或JDK9 +,请选中" Running a JVM in a Container Without Getting Killed"来自 Carlos Sanchez
在大多数情况下,JDK默认为 host 内存的1/4,而不是容器。

尝试添加

,如此spring-boot-web-docker Dockerfile
@app.route('/animals/<animal>', methods=['GET'])
def animals(animal):
  return render_template('animals.html', title='Animal Details', animal=animal)

(在您尝试使用的图像之上构建自己的自定义图像)

这些选项来自&#34; Java SE support for Docker CPU and memory limits&#34; (2017年5月)。