制作带有JDK的docker镜像

制作带有JDK的centos容器镜像,在制作这个镜像的过程中,一定要注意下载适配当前镜像系统的JDK,包括架构以及系统,否则会出现制作成功,但是JDK无法启用的状况。
我的系统镜像是centos linux/arm64/v8,下载的JDK要适配这个系统镜像。

JDK版本

上传JDK

镜像下载完成后,通过xftp工具将jdk-8u281-linux-aarch64.tar.gz 传到指定目录 /usr/local/bdsoft上传JDK

创建Dockerfile文件

切换到在 /usr/local/bdsoft 目录创建Dockerfile文件,一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。文件内容如下

  1. FROM:指定创建镜像的基础镜像
  2. MAINTAINER:Dockerfile作者信息,一般写的是联系方式
  3. RUN:运行Linux系统的命令使用
  4. CMD:指定容器启动执行的命令;启动容器中的服务
  5. LABEL:指定生成镜像的源数据标签
  6. EXPOSE:指定镜像容器监听端口号;发布服务使用
  7. ENV:使用环境变量
  8. ADD:对压缩文件进行解压缩;将数据移动到指定的目录
  9. COPY:复制宿主机数据到镜像内部使用
  10. WORKDIR:切换到镜像容器中的指定目录中
  11. VOLUME:挂载数据卷到镜像容器中
  12. USER:指定运行容器的用户
  13. ARG:指定镜像的版本号信息
  14. ONBUILD:创建镜像,作为其他镜像的基础镜像运行操作指令
  15. ENTRYPOINT:指定运行容器启动过程执行命令,覆盖CMD参数

本次制作带有JDK的镜像只用到了FROM 、MAINTAINER 、ADD 、ENV 命令
Dockerfile

制作镜像

执行构建命令
docker build -t centos-jdk8 -f /usr/local/bdsoft/Dockerfile-JDK .
注意一定要带有最后面的,英式点 . ,不然会报错。
构建命令
构建命令

-f 显示指定构建镜像的 Dockerfile 文件(Dockerfile 可不在当前路径下)
如果不使用 -f,则默认将上下文路径下的名为 Dockerfile 的文件认为是构建镜像的 “Dockerfile”

此处还未研究透彻,只会一种方式,将基础镜像centos、jdk、dockerfile放在同一级目录下,且在制作镜像前切换到此目录下执行制作命令,不然在制作过程中会出错未在目标目录下执行命令报错信息
成功执行制作命令
制作成功后通过docker images查看会有两个镜像

  1. 基础镜像 centos
  2. 带有jdk的镜像centos-jdk
    查看镜像
    接下来我们启动带有jdk的镜像系统centos-jdk8,并查看是否成功启动容器

启动镜像

docker run -itd --name centos-jdk8 centos-jdk8:latest
docker ps -a
启动镜像

进入容器

生成对应的容器centos-jdk8,并成功启动STATUS为Up,进入该容器
docker exec -it [CONTAINER ID] /bin/bash
进入容器

查看java版本

进入容器后,运行命令java -version查看java版本,判断镜像中是否成功安装了jdk
查看java版本

退出容器

exit退出容器
退出容器
退出容器后再次运行了java -version命令发现依旧可以执行。觉得有些奇怪,仔细观察后发现是服务器上已经安装的jdk,版本和容器的jdk版本不一致。
容器jdk、服务器jdk
到此制作带有jdk的镜像系统完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值