栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用docker搭建java开发环境

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用docker搭建java开发环境

提供一个极简的demo
  1. 编写hello world
import java.util.*;

public class Test {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        System.out.println(new Date());
    }
}
  1. 编写Dockerfile
touch dockerfile
# 基于java 9
FROM java:9
# 设置工作目录
WORKDIR /app
# 复制文件到工作目录
COPY . /app
# 设置java环境变量
ENV PATH=$PATH:$JAVA_HOME/bin
ENV JRE_HOME=${JAVA_HOME}/jre
ENV CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
# 编译
RUN ["/usr/lib/jvm/java-9-openjdk-amd64/bin/javac","Test.java"]
# 运行
ENTRYPOINT ["/usr/lib/jvm/java-9-openjdk-amd64/bin/java","Test"]
  1. 构建镜像并执行
    执行以下命令来构建Docker镜像
docker build . -f dockerfile -t java-test:latest

构建成功后,运行

docker run java-test:latest

效果如图

Docker 资源限制

在"docker run"中,可以添加一下参数来限制容器资源使用:

docker run java-test:latest --cpus 4 --memory 100m


防止Java容器应用被杀

Docker Linux 容器使用Linux内核的CGroup机制来实现限制容器的资源(CPU,内存等)使用,当系统资源 不足时,系统就会根据优先级杀掉相关进程来维持系统的正常运行,导致常见的OOM错误。

为了 确保java容器应用正常运行,需要确保JVM获取可用的正确的CPU核心数和RAM容量,以相应地调整内部参数,在有限的资源下正常运行。

在OpenJDK8及更高版本可用正确检测容器的CPU内核数量和可用RAM,在OpenJDK11中,这是默认打开的。在8,9,10中,必须使用一下配置选项启用容器限制RAM的检测,否则JVM将使用主机配置而不是容器资源配置(其并不识别容器):

java --XX:+UnlockExperimentalVMOptions --XX:+UseCGruopMemoryLimitForHeap

除此之外,还可以用 “-Xmx” 参数指定JVM的最大内存。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/337842.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号