# 前言

在近期的基于阿里云效Codeup部署中,通过对于流水线的分析和学习。项目的构建需要依赖于一些基础的容器镜像,搭建一套自己的基础镜像可以很好地在后续的开发中使用。话不多说,以基础的jdk8镜像为例。

# 一、构建准备

# 1.构建材料

1.阿里云——容器镜像服务——实例列表(个人版):

  1. 准备一个命名空间
  2. 新建一个镜像仓库
  3. 根据阿里提供的《操作指南》在linux中登录阿里云Docker Registry

image.png

2.Oracle官网的Jre-server Java Downloads | Oracle 中国 (opens new window) 3.准备一个DockerFile

# 使用CentOS 7作为基础镜像
FROM centos:7

# 安装Java JDK 8
# 假设server-jre-8u411-linux-x64.tar.gz已经在当前目录下
# 将JDK添加到镜像中
ADD server-jre-8u411-linux-x64.tar.gz /opt/

# 设置环境变量
ENV JAVA_HOME /opt/jdk1.8.0_411
ENV PATH $PATH:$JAVA_HOME/bin

# 可选:设置工作目录
WORKDIR /app

# 可选:暴露端口,如果需要的话
# EXPOSE 8080

# 可选:运行命令,如果需要的话
 CMD ["java", "-version"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 二、构建

# 1.构建镜像

docker build -t image_name:image_tag . image.png

# 2.启动容器

docker run -it --name my-jdk8-container my-jdk8-image image.png 这里能够看到java version出来就说明容器构建没问题。

# 三、推送至个人仓库

这里按照官方的《操作指南》即可,出现size统计和pushed等字样表示推送成功。image.png 同时,我们可以回到阿里云的官方控制台中看到对应的镜像信息。 image.png

# 四、特别说明(JDK与JRE的区别)

# 1.一句话概括JDK与JRE

JDK是Java的开发工具,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。 JRE只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。

# 2.JRE选用理由

  1. 减小镜像大小:一个JRE在50M左右,而一个JDK在130M左右。JDK比JRE多出来的编译器、调试器等开发工具与运行java应用程序时并不是必须的。减小镜像大小可以加快镜像的构建和部署速度,节省存储空间和网络传输的时间。
  2. 资源利用率:JRE占用的系统资源较少,有助于提高容器的性能和效率,特别是在资源有限的情况下。
  3. 明确构建与运行环境的区别:开发阶段使用JDK进行代码开发和测试,在生产阶段用JRE来运行。可以确保生产环境只包含运行时真正需要的组件,避免了开发工具带来的额外开销。
Last Updated: 2024/11/29 下午3:21:50