gpt4 book ai didi

docker - 为什么 docker 容器总是被杀死

转载 作者:行者123 更新时间:2023-12-02 18:29:57 25 4
gpt4 key购买 nike

我正在尝试运行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退出?

最佳答案

如果您的Docker镜像正在运行JDK8u131 +或JDK9 +,请从 Running a JVM in a Container Without Getting Killed 中检查“Carlos Sanchez”。
在大多数情况下,JDK的默认最大堆大小为主机内存(而不是容器)的1/4。

像在spring-boot-web-docker Dockerfile 中一样尝试添加

ENV JAVA_OPTS "-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -XshowSettings:vm"

(在您要使用的自定义图片上构建自己的自定义图片)

这些选项来自“ Java SE support for Docker CPU and memory limits”(2017年5月)。

关于docker - 为什么 docker 容器总是被杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50425895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com