制作Java8环境Docker镜像
这里介绍如何制作一个java8环境的镜像,用于运行java应用程序。
1.安装包
这里采用OpenJDK,不会涉及版本问题。
同样思源中文字体也是开源的,没有版权问题。
OpenJDK8:OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tar.gz
wget安装包:wget-1.14-18.el7_6.1.x86_64.rpm
思源中文字体:09_SourceHanSerifSC.zip
上面三个文件全部放入 /opt/openjdk_images
目录下。
2.准备
OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tar.gz 解压后目录为 jdk8u382-b05 ,这里提前创建openjdk环境变量文件,方便镜像制作时直接拷贝进去。
创建openjdk环境变量文件:
shell
tee /opt/openjdk_images/openjdk.sh << \EOF
export JAVA_HOME=/opt/jdk8u382-b05
export CLASSPATH=.:$JAVA_HIOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
EOF
部分java应用程序,可能会涉及中文乱码问题,需要安装中文字体,这里采用的是开源的思源中文字体,思源字体包提前解压,方便镜像制作时直接拷贝进去。
解压思源字体包:
shell
unzip /opt/openjdk_images/09_SourceHanSerifSC.zip -d /opt/openjdk_images/SourceHanSerifSC
3.创建Dockerfile
这里选择centos:centos7.9.2009
作为基础镜像。
创建Dockerfile文件:
dockerfile
tee /opt/openjdk_images/Dockerfile << \EOF
# 基础镜像
FROM centos:centos7.9.2009
# 作者
MAINTAINER 胡桃夹子 <infowangxin@139.com>
# 传wget安装包
COPY ./wget-1.14-18.el7_6.1.x86_64.rpm /opt
# 传openjdk包
ADD ./OpenJDK8U-jdk_x64_linux_hotspot_8u382b05.tar.gz /opt
# 传openjdk环境变量配置文件
COPY ./openjdk.sh /etc/profile.d
# 传思源中文字体
COPY ./SourceHanSerifSC/OTF/SimplifiedChinese/* /usr/share/fonts/
# 安装wget
RUN rpm -ivh /opt/wget-1.14-18.el7_6.1.x86_64.rpm --force --nodeps
# 删除安装包
RUN rm -f /opt/*.rpm
EOF
4.制作镜像
制作镜像,镜像名称定义为:library/java:openjdk-8u382-b05-centos7
shell
cd /opt/openjdk_images
docker build -f Dockerfile -t library/java:openjdk-8u382-b05-centos7 .
5.验证
运行刚刚制作的镜像,命名为centos:
shell
docker run -itd --name=centos --privileged=true -p 3333:22 library/java:openjdk-8u382-b05-centos7 /usr/sbin/init
进入centos容器:
shell
docker exec -it centos bash
验证java环境变量:
java -version
同时直接运行 java
、 javac
、 jstack
、 jps
、 jmap
等命令,如果都会出现提示信息,代表java环境安装没有问题。
验证wget:
shell
wget --help
能正常的出现wget帮助信息,则代表安装也没有问题。
至此整个java8环境的docker镜像已经制作完成。