热爱技术,追求卓越
不断求索,精益求精

Docker多个容器共享宿主机JDK(openjdk-17.0.2)

在《eclipse安装docker插件,连接远程docker》中,我们Dockerfile是基于openjdk 17构建java应用的镜像,如果每个应用都这样构建,每个应用的镜像差不多要500M的磁盘空间,所以需要共享宿主机JDK,以节省磁盘空间。

下载openjdk-17.0.2,在华为提供的下载源下载

https://mirrors.huaweicloud.com/openjdk/

https://mirrors.huaweicloud.com/openjdk/17.0.2/

下载的openjdk-17.0.2_linux-x64_bin.tar.gz

我下载后,放到“/var/www/data/JDK”,可以根据自己的情况放到自己喜欢的目录。

解压:

tar -zxvf openjdk-17.0.2_linux-x64_bin.tar.gz

把解压后的目录重命名:

mv jdk-17.0.2 JDK17.0.2

这样一来,我们jdk17的目录是

/var/www/data/JDK/JDK17.0.2

修改应用的Dockerfile

#FROM findepi/graalvm:java17-native
#FROM openjdk:17
#选择ubuntu base镜像(宿主机是ubuntu,所以选择它,可指定版本/tag)
FROM ubuntu

MAINTAINER Yang Jun

RUN mkdir -p /var/www/data/work/nacos

WORKDIR /var/www/data/work/nacos

EXPOSE 8848

ENV TZ=Asia/Shanghai LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms256m -Xmx512m"

#设置JAVA_HOME环境变量
ENV JAVA_HOME="/var/www/data/JDK/JDK17.0.2"
#设置PATH环境变量
ENV PATH="${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/sbin"

ADD ./target/nacos.jar ./app.jar

ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom ${JAVA_OPTS} -jar app.jar

命令行创建创建容器(以自定义nacos为例):

docker run -d -p 8848:8848 -v /var/www/data/JDK/JDK17.0.2:/var/www/data/JDK/JDK17.0.2 --name nacos nacos:1.0.0

如果是idea,运行容器时,Run Options 输入框中输入如下选项即可:

-d -p 8848:8848 -v /var/www/data/JDK/JDK17.0.2:/var/www/data/JDK/JDK17.0.2
赞(0)
未经允许不得转载:LoveCTO » Docker多个容器共享宿主机JDK(openjdk-17.0.2)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

热爱技术 追求卓越 精益求精