linux创建JDKdocker镜像,镜像的保存和加载

本文详细介绍了如何下载JDK15.0.2,创建Dockerfile,然后通过Dockerfile构建和启动容器。在过程中遇到了`java-version`命令找不到的问题,原因是环境变量设置错误,修正后成功运行。最后,文章还演示了如何保存和加载Docker镜像。
摘要由CSDN通过智能技术生成

目录

1.下载JDK以JDK15.0.2为例

2.编写 Dockerfile 文件

3.创建并启动容器

4.java -version异常

5.保存镜像

6.加载镜像


1.下载JDK以JDK15.0.2为例

// 官网国内下载慢参考下面博客
https://blog.csdn.net/fantasmic/article/details/128641856?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-128641856-blog-113915889.pc_relevant_landingrelevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-128641856-blog-113915889.pc_relevant_landingrelevant&utm_relevant_index=6
# 下载jdk
http://www.codebaoku.com/jdk/jdk-oracle-jdk15.html
# 网盘下载
链接:https://pan.baidu.com/s/10K4RjSCbI882PNQn7LOykQ 
提取码:4545 

# 创建镜像操作目录
mkdir -p /docker-image/jdk &&  cd  /docker-image/jdk
# 上传jdk压缩包 没有命令执行 yum -y install lrzsz,或者其他形式上传
rz
root@localhost jdk]# ls
jdk-15.0.2_linux-x64_bin.tar.gz

2.编写 Dockerfile 文件

# 编写 Dockerfile 文件
touch Dockerfile 
vi Dockerfile

#1.指定基础镜像,并且必须是第一条指令
FROM centos:7

#2.指明该镜像的作者和其电子邮件
MAINTAINER zs "1196869282@qq.com"

#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
WORKDIR /docker-image/jdk

#4.一个复制命令,把jdk安装文件复制到镜像中,语法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相对路径
ADD jdk-15.0.2_linux-x64_bin.tar.gz /docker-image/jdk

#5.配置环境变量 jdk-15.0.2 压缩包解压后的路径
ENV JAVA_HOME=/docker-image/jdk/jdk-15.0.2
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH

#容器启动时需要执行的命令
#CMD ["java","-version"]

3.创建并启动容器

# 执行Dockerfile文件,初次依赖镜像的时候会下载相应镜像
# -t jdk:15.0.2 给新构建的镜像取名为 jdk, 并设定版本为 15.0.2
# 注意最后有个点,代表使用当前路径的 Dockerfile 进行构建
docker build -t jdk:15.0.2 .
# 创建并且启动容器    
docker run -it jdk:15.0.2 /bin/bash
# -----
[root@7d8af34a897f jdk]# java -version
java version "15.0.2" 2021-01-19
Java(TM) SE Runtime Environment (build 15.0.2+7-27)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.2+7-27, mixed mode, sharing)
# 退出容器
[root@7d8af34a897f jdk]# exit

4.java -version异常

bash: java: command not found

进入 容器进入到/docker-image/jdk
查看java目录名,修改环境变量名称即可,删除容器镜像重新创建启动下面命令即可

docker build -t jdk:15.0.2 .

5.保存镜像

# 查看容器id
[root@localhost jdk]# docker images 
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
jdk                     15.0.2              7aa18b6a6de2        3 minutes ago       533 MB

# docker save 命令根据 ID 将镜像保存成一个文件
[root@localhost jdk]# docker save 7aa18b6a6de2 > jdk-15.0.2.tar jdk:15.0.2
[root@localhost jdk]# ls
Dockerfile  jdk-15.0.2_linux-x64_bin.tar.gz  jdk-15.0.2.tar
[root@localhost jdk]# 

6.加载镜像

# 删除原来镜像
[root@localhost jdk]# docker rmi 7aa18b6a6de2
# 加载镜像
docker load < jdk-15.0.2.tar 
3d1178db94c1: Loading layer [==================================================>]  2.56 kB/2.56 kB
444f6074ec26: Loading layer [==================================================>] 329.3 MB/329.3 MB
Loaded image: jdk:15.0.2
# 查看镜像
[root@localhost jdk]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED              SIZE
jdk                     15.0.2              d4ba100d4b44        About a minute ago   533 MB
docker.io/minio/minio   latest              e31e0721a96b        14 months ago        406 MB
docker.io/centos        7                   eeb6ee3f44bd        18 months ago        204 MB
docker.io/mysql         8.0.23              cbe8815cbea8        23 months ago        546 MB

[root@localhost jdk]# docker run -it jdk:15.0.2 /bin/bash
[root@c43c77dbba04 jdk]# java -version
java version "15.0.2" 2021-01-19
Java(TM) SE Runtime Environment (build 15.0.2+7-27)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.2+7-27, mixed mode, sharing)
[root@c43c77dbba04 jdk]# exit
exit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值