dockerFile java环境 配置 与 jdk8 各系统安装包直链下载

macosx-x64.dmg

https://mirrors.huaweicloud.com/java/jdk/8u191-b12/jdk-8u191-macosx-x64.dmg

windows64位.exe

https://mirrors.huaweicloud.com/java/jdk/8u191-b12/jdk-8u191-windows-x64.exe

linux-x64.tar.gz

https://mirrors.huaweicloud.com/java/jdk/8u191-b12/jdk-8u191-linux-x64.tar.gz

其他java8版本下载

https://www.aliyundrive.com/s/j3WYi1xVp5b

 

1、下载 jdk8
mkdir -p /Dockerfile
下载jdk,并上传到服务器目录==/docker/jdk==;

 

2、创建 Dockerfile
创建目录

cd /Dockerfile
# 生成 Dockerfile
touch Dockerfile
# 生成镜像脚本
touch setup.sh
# 启动容器脚本
touch start.sh
# 进入容器脚本
touch enter.sh

/Dockerfile

# 设置docker的运行环境,根据你的版本来 不然可能失败

基础指令

FROM

基于哪个镜像

MAINTAINER

用来写备注信息,例如作者、日期等。

COPY

复制文件进入镜像(只能用相对路径,不能用绝对路径)

ADD

复制文件进入镜像(可以用绝对路径,假如是压缩文件会解压)

WORKDIR

指定工作目录,假如路径不存在会创建路径

ENV

设置环境变量

EXPOSE

暴露容器端口到宿主机

RUN

在构建镜像的时候执行一条命令,作用于镜像层面

shell命令格式:RUN yum install -y net-tools

exec命令格式:RUN [ "yum","install" ,"-y" ,"net-tools"]

ENTRYPOINT

在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条

CMD

在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条

容器启动后执行默认的命令或者参数,允许被修改

安装jdk

同级目录下创建一个Dockerfile,必须叫这个名字

[root@localhost file]# ll

total 181296

-rw-r--r--. 1 root root 0 Oct 31 10:34 Dockerfile

-rw-r--r--. 1 root root 185646832 Mar 28 2019 jdk-8u181-linux-x64.tar.gz

编写Dockerfile

[root@localhost file]# vim Dockerfile

[root@localhost file]# cat Dockerfile

# 基于cntos7,如果没有这个镜像那么它会下载这个镜像。

FROM centos:7
# 编写人
MAINTAINER qqj

# 为Dockerfile中所有RUN、CMD、ENTRYPOINT、COPY和ADD指令设定工作目录

WORKDIR /usr

# 执行命令(这里创建了一个目录)

RUN mkdir /usr/local/java

# 和copy一样,复制文件到指定目录,但是copy不能解压,add自动解压

ADD jdk-8u341-linux-x64.tar.gz /usr/local/java


# 设置环境变量

ENV JAVA_HOME /usr/local/java/jdk1.8.0_341

ENV JRE_HOME ${JAVA_HOME}/jre

ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib

ENV PATH ${JAVA_HOME}/bin:$PATH

 

执行dockerfile文件,创建的镜像名为jdk1.8,最后面的点表示当前目录(即dockerfile所在目录)

docker build -t java:8-jre .

并且要解压到现实目录安装jdk

#新建文件夹

mkdir /usr/local/java

//解压到指定文件夹

tar -zxvf /Dockerfile/jdk-8u341-linux-x64.tar.gz -C /usr/local/java

接下来配置环境变量,输入:vim /etc/profile进入编辑模式,先按i键进入编辑模式,然后把光标移动到最后面,在文件末尾加上:

#java环境变量配置

JAVA_HOME=/usr/local/java/jdk1.8.0_341
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin

JRE_HOME=$JAVA_HOME/jre
export PATH JAVA_HOME CLASSPATH JRE_HOME

#java环境变量配置

export JAVA_HOME=/usr/local/java/jdk1.8.0_341
export PATH=$PATH:$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre

 

退出之后输入:source /etc/profile重新加载配置文件
然后java -version查看安装情况,一般情况下肯定是安装成功的。


# . 代表着当前上下文

[root@localhost file]# docker build -t='java:8-jre' .

Sending build context to Docker daemon 201.8MB

Step 1/10 : FROM centos:7

---> 67fa590cfc1c

Step 2/10 : MAINTAINER 吴磊

---> Running in 82b0855b713c

Removing intermediate container 82b0855b713c

---> 6ba6c5306ef5

Step 3/10 : WORKDIR /usr

---> Running in 53f979aa515b

Removing intermediate container 53f979aa515b

---> 623ec9ba1c71

Step 4/10 : RUN mkdir /usr/local/java

---> Running in f074844393c7

Removing intermediate container f074844393c7

---> 05a226b05d2f

Step 5/10 : ADD jdk-8u181-linux-x64.tar.gz /usr/local/java

---> 99a917b34d5c

Step 6/10 : RUN ln -s /usr/local/java/jdk1.8.0_181 /usr/local/java/jdk

---> Running in ccdf92640d65

Removing intermediate container ccdf92640d65

---> 93d145bf041d

Step 7/10 : ENV JAVA_HOME /usr/local/java/jdk

---> Running in bcded531db5a

Removing intermediate container bcded531db5a

---> 715630eea4d3

Step 8/10 : ENV JRE_HOME ${JAVA_HOME}/jre

---> Running in c9aa4b7df0db

Removing intermediate container c9aa4b7df0db

---> 97050481ab7a

Step 9/10 : ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib

---> Running in 0123f3ea1213

Removing intermediate container 0123f3ea1213

---> 8304bed832f1

Step 10/10 : ENV PATH ${JAVA_HOME}/bin:$PATH

---> Running in 66e39b8befef

Removing intermediate container 66e39b8befef

---> 437729c49ac1

Successfully built 437729c49ac1

Successfully tagged jdk1.8:latest

查看所有的镜像,此时就多了一个jdk1.8

[root@localhost file]# docker images

REPOSITORY TAG I MAGE ID CREATED SIZE

jdk1.8 latest 437729c49ac1 14 seconds ago 584MB

centos 7 67fa590cfc1c 2 months ago 202MB

制作容器并进到容器里面(能看到java版本号就没问题了)

[root@localhost file]# docker run -it --name=java java:8-jre /bin/bash

[root@98c7b9225445 usr]# java -version

java version "1.8.0_181"

Java(TM) SE Runtime Environment (build 1.8.0_181-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

[root@98c7b9225445 usr]#

部署jar包

[root@localhost demo]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

jdk1.8 latest 437729c49ac1 3 days ago 584MB

centos 7 67fa590cfc1c 2 months ago 202MB

[root@localhost demo]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

jar包同级目录创建Dockerfile


setup.sh 执行脚本 根据你想要的标签来定

docker build -t java:8-jre .
# . 代表着当前上下文

[root@ jdk]# sh setup.sh
Sending build context to Docker daemon 143.1MB
Step 1/8 : FROM centos
---> 0d120b6ccaa8
Step 2/8 : MAINTAINER ALEX
---> Using cache
---> c713e2db9476
Step 3/8 : ADD jdk-8u271-linux-x64.tar.gz /usr/local/env/jdk/
---> Using cache
---> 2b44078a4757
Step 4/8 : ENV JAVA_HOME /usr/local/env/jdk/jdk1.8.0_271/
---> Using cache
---> 518acf43cd37
Step 5/8 : ENV PATH $JAVA_HOME/bin:$PATH
---> Using cache
---> da8791cd64c3
Step 6/8 : RUN yum -y install vim
---> Using cache
---> a4aa6cec7edf
Step 7/8 : RUN echo "alias ll='ls $LS_OPTIONS -l'" >> ~/.bashrc
---> Using cache
---> b2eb2cb33a02
Step 8/8 : RUN source ~/.bashrc
---> Using cache
---> cd096ee7d56c
Successfully built cd096ee7d56c
Successfully tagged jdk:1.8

查看生成的JDK镜像

[root@ jdk]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jdk 1.8 cd096ee7d56c 2 hours ago 628MB

运行容器 start.sh

docker stop jdk-test
docker rm jdk-test
docker run -itd --name jdk-test jdk:1.8

进入容器 enter.sh

docker exec -it jdk-test /bin/bash

进入容器后

[root@842e12c3e67b /]# java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

到此安装完毕

 

posted @ 2022-09-27 16:26  全琪俊  阅读(3783)  评论(0编辑  收藏  举报