搭建基础镜像(centos+jdk)

news/2024/11/16 21:37:42/

搭建基础镜像(centos+jdk)

  • 1. 目录结构
    • 1.1 应用目录
    • 2.2 镜像目录
  • 2. 编写Dockerfile
    • 2.1 设置工作目录
    • 2.2 解决时间同步问题(设置时区)
    • 2.3 核心逻辑
    • 2.4 设置环境变量
  • 3. 构建镜像
    • 3.1 构建镜像
    • 3.2 导出镜像

1. 目录结构

1.1 应用目录

事先下载jdk安装包并保存到本地
在这里插入图片描述

2.2 镜像目录

在这里插入图片描述

2. 编写Dockerfile

2.1 设置工作目录

# 设置工作目录
WORKDIR ${WORK_DIR}# 文件拷贝:将所有本地文件拷贝到容器目录
COPY ./jdk ${WORK_DIR}/jdk

2.2 解决时间同步问题(设置时区)

# 解决时间同步问题
RUN rm -f /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.3 核心逻辑

  • 创建用户
  • 安装基础包
  • 安装JDK
  • 安装证书
RUN groupadd ${SYS_USER_GROUP} && \# 创建用户admin并添加到admin用户组下useradd -m -g ${SYS_USER_GROUP} ${SYS_USER} && \# 创建目录mkdir -p ${SRC_APP_DIR} ${SRC_LOG_DIR} ${SRC_DATA_DIR} ${SRC_SERVER_DIR} ${TGT_DIR} && \# 安装基础包yum install -y openssh-server cronie wget && \# 安装JDK \tar -zxvf ${WORK_DIR}/jdk/jdk-8u391-linux-x64.tar.gz -C ${SRC_SERVER_DIR} && \# 安装证书ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' && \ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' && \ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' && \# 删除JDK安装包rm -r ${WORK_DIR}/jdk
  • 环境变量(ENV)
    • SYS_USER_GROUP:系统用户组
    • SYS_USER:系统用户
  • 参数(ARG)
    • SRC_DIR:源根目录
    • SRC_APP_DIR:源应用目录
    • SRC_LOG_DIR:源日志目录
    • SRC_DATA_DIR:源数据目录
    • SRC_SERVER_DIR:源服务目录
    • TGT_DIR:目标根目录

2.4 设置环境变量

# 设置JAVA_HOME
ENV JAVA_HOME "$SRC_SERVER_DIR/jdk1.8.0_391"
# 设置PATH
ENV PATH "$PATH:$JAVA_HOME/bin"

3. 构建镜像

3.1 构建镜像

docker build -t centos7-jdk-1.0 -f ./Dockerfile_centos7_jdk .

3.2 导出镜像

docker save -o /images/centos7-jdk-1.0.tar centos7-jdk-1.0

http://www.ppmy.cn/news/1446716.html

相关文章

2024年Q1季度电子书线上市场数据分析:高端市场潜力巨大,销额同比超170%!

数字阅读设备的普及和互联网技术的不断进步,越来越多的读者选择使用电子书来获取知识和娱乐。在今年Q1季度中,电子书线上市场规模正在持续扩大。 根据鲸参谋数据显示,在线上电商平台(某东)电子书Q1销量累计约23.3万件…

uniApp+Vue3+vite+Element UI或者Element Plus开发学习,使用vite构建管理项目,HBuilderX做为开发者工具

我们通常给小程序或者app开发后台时,不可避免的要用到可视化的数据管理后台,而vue和Element是我们目前比较主流的开发管理后台的主流搭配。所以今天石头哥就带大家来一起学习下vue3和Element plus的开发。 准备工作 1,下载HBuilderX 开发者…

【NR RedCap】Release 18标准中对5G RedCap的增强

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。 博客内容主要围绕…

获取Java 虚拟机进程ID(java应用进程Id的方法) Linux windows

可以通过以下几种方式获取Java虚拟机(JVM)的进程ID(PID): 在Linux/Unix/macOS系统中: 使用ps命令结合grep: ps -ef | grep java这个命令会列出所有包含"java"的进程信息。从中你可以找到你的Jav…

vscode使用EditorConfig进行项目配置

安装 EditorConfig for VS Code 插件,该插件会自动读取项目的 .editorconfig 文件,对项目进行配置。 该文件支持属性: indent_style:缩进风格,可配置项:tab,spaceindent_size:缩进…

“大唐杯”基础知识(部分)

DL:下载 UL:上行链路 在5G系统中:2.1GHZ DL最大4流,UL最大2流;700MHZ DL最大2流,UL最大1流 在5G系统中:在手机开机流程中,负责业务承载建立的过程是PDU会话建立过程 NR中支持基础的4…

设计模式(十一):外观模式

设计模式(十一):外观模式 1. 外观模式的介绍2. 外观模式的类图3. 外观模式的实现3.1 创建一个接口3.2 创建接口的实现3.3 创建一个外观类3.4 测试 1. 外观模式的介绍 外观模式(Facade Pattern)属于结构型模式&#xf…

Unity涂鸦纹理实现

文章目录 前言实现过程UV坐标和UI坐标对齐修改像素代码 前言 心血来潮实现下场景中提供一张纹理进行涂鸦的功能。 最终实现效果: 实现过程 UV坐标和UI坐标对齐 这里的纹理使用了UGUI的Canvas进行显示,所以这里使用一张RawImage。 因为Unity的视口坐标是以左下角…