java docker 打包_如何打包Docker Java JDK环境?

本文档详细介绍了如何在Linux环境下,利用Docker打包并创建一个包含JDK 8u65的镜像。首先,你需要熟悉JDK的部署。接着,搭建Docker环境,下载CentOS镜像并推送至Docker集群。然后,创建Dockerfile,设置环境变量,并将JDK文件复制到指定目录。最后,执行`docker build`命令构建镜像,测试镜像运行确保Java版本正确。
摘要由CSDN通过智能技术生成

1 基础知识

本章节需要你先掌握Linux系统的JDK部署,如你尚未具备此知识,请按如下方法熟悉“jdk-8u65-linux-x64.tar.gz”版本的JDK部署,

2 最佳实践

2.1 部署前的准备

2.1.1 部署Docker环境

本章使用如下Docker环境部署,参阅本章建议你先搭建以下Docker集群环境并熟悉,

2.1.2 准备系统镜像

In docker01

cd /data/docker/images/

docker load -i centos_centos7.3.1611.tar

docker tag centos:centos7.3.1611 docker01.cmdschool.org:5000/centos:centos7.3.1611

docker push docker01.cmdschool.org:5000/centos:centos7.3.1611

docker image rm centos:centos7.3.1611

另外,安装包的离线下载请在能上网的docker环境的机器上使用如下命令,

docker pull centos:centos7.3.1611

docker save centos:centos7.3.1611 -o centos_centos7.3.1611.tar

2.1.3 下载JDK二进制安装包

cd ~

wget http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u65-linux-x64.tar.gz?AuthParam=1479977626_06aed8a715c8fbbc10f72c89ee38910b -O jdk-8u65-linux-x64.tar.gz

2.2 创建新镜像

2.2.1 创建镜像项目文件夹

mkdir ~/imageProject-jdk1.8.0_65

2.2.2 创建Dockerfile

vim ~/imageProject-jdk1.8.0_65/Dockerfile

加入如下配置,

FROM docker01.cmdschool.org:5000/centos:centos7.3.1611

MAINTAINER will@cmdschool.org

# Deploy Java jdk

COPY jdk1.8.0_65 /usr/java/jdk1.8.0_65

ENV JAVA_HOME=/usr/java/jdk1.8.0_65

ENV JRE_HOME=${JAVA_HOME}/jre

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

ENV PATH=${JAVA_HOME}/bin:$PATH

注:

“FROM”指令声明基于“centos7.3.1611”镜像打包

“COPY”指令声明复制当前目录的具体文件到打包的镜像

“ENV”指令声明Java JDK运行所需的环境变量

所以我们需要根据定义的文件准备需要复制的文件,

cd ~

tar -xf jdk-8u65-linux-x64.tar.gz -C ~/imageProject-jdk1.8.0_65/

确认所需的文件存在,

ls ~/imageProject-jdk1.8.0_65/

可见如下显示,

Dockerfile jdk1.8.0_65

2.2.3 执行打包操作

cd ~/imageProject-jdk1.8.0_65/

docker build -t jdk:8u65-linux-x64 .

以上“.”指当前目录为编译目录,编译程序会自动加载“Dockerfile”文件定义,可见如下显示,

Sending build context to Docker daemon 366.2MB

Step 1/7 : FROM docker01.cmdschool.org:5000/centos:centos7.3.1611

---> c5d48e81b986

[...]

Successfully built 1bf01e245901

Successfully tagged jdk:8u65-linux-x64

如果镜像集群公用,还需要执行以下命令,

docker tag jdk:8u65-linux-x64 docker01.cmdschool.org:5000/jdk:8u65-linux-x64

docker push docker01.cmdschool.org:5000/jdk:8u65-linux-x64

docker image rm jdk:8u65-linux-x64

完成后,可使用如下命令查看镜像,

docker images

可见如下显示,

REPOSITORY TAG IMAGE ID CREATED SIZE

docker01.cmdschool.org:5000/jdk 8u65-linux-x64 da584614c4ba 33 seconds ago 557MB

[...]

2.2.4 测试软件运行

docker run -d --name jdk docker01.cmdschool.org:5000/jdk:8u65-linux-x64 /usr/sbin/init

以上运行容器环境后,我们使用以下命令登录容器虚拟机,

docker exec -it `docker container ls | grep 'jdk' | cut -d" " -f1 ` /bin/bash

测试Java运行

java -version

可见如下显示,

java version "1.8.0_65"

Java(TM) SE Runtime Environment (build 1.8.0_65-b17)

Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

测试完成后可使用如下命令退出容器虚拟机,

exit

另外,你可以使用如下命令查询当前运行的container,

docker ps -a

可见如下显示,

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

020bf23ea36b docker01.cmdschool.org:5000/jdk:8u65-linux-x64 "/usr/sbin/init" About a minute ago Up About a minute jdk

[...]

然后可以使用如下命令停止并删除,

docker container stop 020bf23ea36b

docker container rm 020bf23ea36b

参阅文档

====================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值