首页 > 系统相关 >CentOS 7.9 JDK1.8环境,运行JDK11、17的项目

CentOS 7.9 JDK1.8环境,运行JDK11、17的项目

时间:2025-01-08 19:05:30浏览次数:3  
标签:JDK1.8 17 CentOS centos7.9 etc releasever https 镜像 docker

由于基础环境是JDK1.8,我们其中一个依赖是JDK17的平台,因此使用如下方案:
1、Docker拉取CentOS7.9.2009镜像

docker pull centos:7.9.2009

docker 拉取镜像有一个需要注意的点,就是镜像源,目前【2025年01月07日】我使用的镜像源是可用的,分享给大家一起使用吧。

vi /etc/docker/daemon.json

{
  "registry-mirrors": [
     "https://docker.registry.cyou",
     "https://docker-cf.registry.cyou",
     "https://dockercf.jsdelivr.fyi",
     "https://docker.jsdelivr.fyi",
     "https://dockertest.jsdelivr.fyi",
     "https://mirror.aliyuncs.com",
     "https://dockerproxy.com",
     "https://mirror.baidubce.com",
     "https://docker.m.daocloud.io",
     "https://docker.nju.edu.cn",
     "https://docker.mirrors.sjtug.sjtu.edu.cn",
     "https://docker.mirrors.ustc.edu.cn",
     "https://mirror.iscas.ac.cn",
     "https://docker.rainbond.cc"
   ]
}

2、准备好jdk17、maven3.6.3的安装包【百度网盘中已准备妥当】

通过网盘分享的文件:分享空间
链接: https://pan.baidu.com/s/1KjWGd3RF66GbNsXIVrW_1w?pwd=grg2 提取码: grg2 
--来自百度网盘超级会员v9的分享

3、创建dockerfile

cd /data/centos7

vi dockerfile

############# 以下是dockerfile内容 #############

# 获取基础镜像
FROM centos:7.9.2009

# 创建者
MAINTAINER 经年不忘

# 创建Java、Maven环境所需的目录
RUN mkdir -p /usr/local/java
RUN mkdir -p /usr/local/maven

# 将包添加到镜像指定目录中
ADD jdk17.tar.gz /usr/local/java/
ADD maven-3.6.3.tar.gz /usr/local/maven

# 设置环境变量
ENV JAVA_HOME=/usr/local/java/jdk-17.0.13+11
ENV PATH=$PATH:$JAVA_HOME/bin

ENV MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
ENV PATH=$PATH:$MAVEN_HOME/bin

############# 以上是dockerfile内容 #############

4、执行dockerfile

docker build -t centos7.9:1.0.0 .

解释一下:

-t:指定构建出的镜像名称和标签。

centos7.9  是新创建的镜像名。

1.0.0  是新创建的镜像版本。

表示使用当前目录下的 Dockerfile 进行构建。

如果 Dockerfile 不在当前目录下,可以使用 -f 指定其路径。

例如:

docker build -t centos7.9:1.0.0 -f /path/to/Dockerfile .

 此时,通过docker images命令,可查看新创建的镜像:

docker images

我称这个镜像为:基础镜像。

5、运行基础镜像,并完善基础镜像

docker run -id \
--name=centos7.9 \
--restart=always \
--privileged=true \
-e "TZ=Asia/Shanghai" \
-p 8588:8080 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /data/docker/centos7.9/data:/data \
centos7.9:1.0.0 /bin/bash

解释一下:

docker run -id \ 交互后台运行
--name=centos7.9 \ 设置容器名称
--restart=always \ 跟随docker启动
--privileged=true \ 赋予容器几乎与主机相同的权限【1、给容器添加了所有的capabilities;2、允许容器访问主机的所有设备】
-e "TZ=Asia/Shanghai" \ 将时区设置为亚洲/上海
-p 8588:8080 \ 映射容器8080端口至宿主机8588端口【对外访问还需要防火墙放通8588端口】
-v /etc/localtime:/etc/localtime:ro \ 同步本地时间。ro表示这是一个只读挂载。
-v /etc/timezone:/etc/timezone:ro \ 同步本地时区ro表示这是一个只读挂载。
-v /data/docker/centos7.9/data:/data \ 映射 宿主机本地目录 : 镜像目录
centos7.9:1.0.0 /bin/bash 镜像名:版本号 /bin/bash 进入容器

进入容器后,需要设置DNS,否则无法访问外网。设置如下:

vi /etc/resolv.conf 

nameserver 8.8.8.8
nameserver 4.4.4.4

修改centos7.9.2009的yum源,否则yum用不了。

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

重点就两个:

1、注释mirrorlist

2、释放baseurl,并修改为mirrors.aliyun.com。使用阿里的源。

此时,执行yum update并安装所需要的包及基础镜像所需的环境。

执行如下操作,确认环境是否正确:

java -version

openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode, sharing)

mvn -version

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven/apache-maven-3.6.3
Java version: 17.0.13, vendor: Eclipse Adoptium, runtime: /usr/local/java/jdk-17.0.13+11
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"

见到如上信息,则环境OK。

6、保存基础镜像,方便在其他项目上使用

docker commit centos7.9 centos-jdk17:1.0.0

此处的centos7.9也可以用容器id代替。

centos-jdk17为基础镜像的新的名称。

1.0.0 如果不加这个版本号,则默认为latest。

到此,在宿主机jdk1.8的环境下,运行jdk17的项目的环境则搭建完成了,运行项目可以通过进入容器执行nohup,或者写shell文件执行均可。

可通过留言或加好友,留下问题。我会在线帮助,如果是共性问题,我也会整理出来方便后来的同学查阅。
 

标签:JDK1.8,17,CentOS,centos7.9,etc,releasever,https,镜像,docker
From: https://blog.csdn.net/sunanle22/article/details/144990199

相关文章

  • 关于RAG你不得不了解的17个技巧
    英文文章:https://towardsdatascience.com/17-advanced-rag-techniques-to-turn-your-rag-app-prototype-into-a-production-ready-solution-5a048e36cdc8#9085最近在写文章,想补上去年RAG(Retrieval-AugmentedGeneration)遗留的一些坑,希望能分享一些RAG的技巧帮到大家。......
  • 【2017-2024】Adobe After Effects(简称AE)强大视频后期制作工具
    AdobeAfterEffects软件简介AdobeAfterEffects(简称AE)是一款由Adobe公司开发的强大视频后期制作工具。它广泛应用于影视、广告、动画制作等多个领域,以其灵活的合成和丰富的特效处理能力,成为了行业标准的软件之一。AE结合了二位和三维动画技术,允许用户创建动态的视觉效果和......
  • 学习 - Linux - Centos安装jdk8
    Centos安装jdk8安装包下载地址:通过网盘分享的文件:jdk链接:https://pan.baidu.com/s/1dQTMZk7foPZhOcw55QM_lQ?pwd=sky1提取码:sky1二、上传至Centos系统解压文件并移动到usr/local目录下解压tarzxvfjdk-8u181-linux-x64.tar.gz移动mvjdk1.8.0_181/usr/local/jdk8......
  • CentOS7搭建Django的各种尝试
    非计算机专业自学Django笔记,如有错误欢迎补充指正,万分感谢!CentOS7系统安装完成时自带了yum,pthon3,pip等常用工具就没有额外配置Python环境了如若要安装,可以通过下列地址获取对应安装包:python下载地址:https://www.python.org/downloads/pip下载地址:https://raw.github.com/py......
  • CentOS7 换源与禁用
    Couldnotretrievemirrorlisthttp://mirrorlist.centos.org?arch=x86_64&release=7&repo=sclo-rherrorwas14:HTTPError502-BadGatewayCentOS7官方已经停止维护,需要替换到默认源https://www.cnblogs.com/kohler21/p/18331060方法sudobashcd/etc/yum.repos.d/m......
  • CentOS7安装sqlite最新版
    sqlite官网:https://www.sqlite.org/download.html1.查找最新的/想要的tar.gz文件下载链接以3.47.2为例:https://www.sqlite.org/2024/sqlite-autoconf-3470200.tar.gz下载:curl-Ohttps://www.sqlite.org/2024/sqlite-autoconf-3470200.tar.gz解压:tarzxvfsqlite-autoconf-......
  • Centos7.8安装Gitlab.211208
    公司为了合规性考虑,需要自己搭建私有化版的github。那不用想,肯定要上GitLab了。项目背景:服务器:华为云ECS,需要上公网,并在安全组打开80端口访问。用户:关闭公开注册,新建用户后,手动改密码,不用安装邮件服务。步骤:1.安装gitlab-ce仓库和安装包curlhttps://packages.gitlab.com/i......
  • Linux(Centos 7.6)命令详解:mkdir
    1.命令作用如果目录还不存在,则创建目录(CreatetheDIRECTORY,iftheydonotalreadyexist.)2.命令语法Usage:mkdir[OPTION]...DIRECTORY...3.参数详解OPTION:-m,--mode=MODE,创建新目录同时设置权限模式-p,--parents,创建多层目录,如上层目录不存在会自动创建-v,-......
  • centos 7 安装node 20版本
    安装nvm(内容出处:https://www.cnblogs.com/wafulo/p/17581766.html)1.下载安装包wgethttps://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.1.tar.gz2.创建安装包解压目录mkdir-p/root/.nvm3.解压安装包到目录tar-zxvfnvm-0.39.1.tar.gz-C/root/.nvm......
  • 软考信安17~网络安全应急响应技术原理与应用
    1、网络安全应急响应概述网络安全应急响应是针对潜在发生的网络安全事件而采取的网络安全措施。1.1、网络安全应急响应概念网络安全应急响应是指为应对网络安全事件,相关人员或组织机构对网络安全事件进行监测、预警、分析、响应和恢复等工作。1.2、网络安全应急响应发展国......