jdk17.0.4.1镜像
oraclejdk17镜像打包
oracle jdk17免费商用条款持续至2024年9月,可以放心用于商用,下载地址如下
下载jdk及编写Dockerfile
[root@k8s02 jdk]# ll
total 177004
-rw-r--r-- 1 root root 439 Aug 24 15:19 Dockerfile
-rw-r--r-- 1 root root 181244275 Aug 22 11:28 jdk-17.0.4.1_linux-x64_bin.tar.gz
[root@k8s02 jdk]# cat Dockerfile
FROM centos:7
WORKDIR /data
RUN mkdir /usr/java/
ADD jdk-17.0.4.1_linux-x64_bin.tar.gz /usr/java/
CMD ["yum install -y iputils"]
ENV JAVA_HOME /usr/java/jdk-17.0.4.1
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
ENV LANG en_US.UTF-8
RUN /bin/sh -c set -ex
RUN chmod 755 -R /usr/java/jdk-17.0.4.1
CMD ["java -version"]
CMD ["jshell"]
构建打包jdk镜像
docker build -t oraclejdk:17.0.4.1 .
测试打包好的jdk镜像
[root@k8s02 app]# ll
total 126768
-rw-r--r-- 1 root root 328 Aug 24 15:30 Dockerfile
-rw-r--r-- 1 root root 129799346 Aug 24 15:04 saas.jar
-rw-r--r-- 1 root root 329 Aug 24 15:28 start.sh
[root@k8s02 app]# cat Dockerfile
From oraclejdk:17.0.4.1
# Import
ARG JAR_NAME
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" >/etc/timezone
WORKDIR /data
COPY $JAR_NAME .
#COPY application.properties ./config/
COPY start.sh .
EXPOSE 80
ENTRYPOINT ["sh", "/data/start.sh"]
[root@k8s02 app]# cat start.sh
jarFile=$(ls /data/*.jar -t | head -n 1)
java -server -XX:+UseG1GC -XX:G1HeapWastePercent=0 -XX:+G1UseAdaptiveIHOP -XX:+UseStringDeduplication -XX:MaxGCPauseMillis=200 -Xms4g -Xmx4g -XX:+UseCompressedOops -Djava.security.egd=file:/dev/./urandom --add-modules ALL-SYSTEM --add-opens java.base/java.lang=ALL-UNNAMED -jar $jarFile > nohup.out
构建应用程序镜像
[root@k8s02 app]# docker build --build-arg JAR_NAME=`ls target/*.jar` -t saas:v2 .
[root@k8s02 app]# docker run -itd saas:v2
[root@k8s02 app]# docker exec -it beautiful_dewdney /bin/bash
[root@a0d4d3121c9a data]# ls
Dockerfile nohup.out saas.jar start.sh
测试安装的ping命令,有时候在容器内会使用到ping功能
[root@a0d4d3121c9a data]# ping 192.168.1.59
PING 192.168.1.59 (192.168.1.59) 56(84) bytes of data.
64 bytes from 192.168.1.59: icmp_seq=1 ttl=64 time=0.112 ms
64 bytes from 192.168.1.59: icmp_seq=2 ttl=64 time=0.086 ms
检查没有问题以后可以上传到镜像库
docker tag oraclejdk:17.0.4.1 idealgkm/oraclejdk:17.0.4.1
docker login
docker push idealgkm/oraclejdk:17.0.4.1