首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Docker容器——创建一个自定义jdk1.8镜像

Docker容器——创建一个自定义jdk1.8镜像

作者头像
cn華少
发布2022-03-06 09:22:23
发布2022-03-06 09:22:23
2.7K0
举报
文章被收录于专栏:IT综合技术分享IT综合技术分享

Docker容器——创建一个自定义jdk1.8镜像

背景

日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。 同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。

开发环境

  • 系统:Ubuntu
  • 工具:docker

内容

废话不多说直接进入主题:

1、在宿主机中创建我们本次使用的目录,并进入其中

代码语言:javascript
复制
mkdir dockerfile_create && cd dockerfile_create/
mkdir docker_jdk && cd docker_jdk/

2、进行下载jdk1.8,存放到我们刚才创建好的docker_jdk目录下,同时在该路径下开始第三步。

这里需要具有oracle的账号,可以直接注册一个,或者使用如下地址下载 链接: https://pan.baidu.com/s/1n9ulyRlxVsVs4aOxoCIe-w 提取码: nsjw

3、进行编写Dockerfile

代码语言:javascript
复制
vim Dockerfile

文件内容如下

代码语言:javascript
复制
# 基础镜像文件
FROM centos:latest

# 本次镜像创建人
MAINTAINER cnhuashao

# 进入工作目录
WORKDIR /opt

# 创建一个我们需要的目录
RUN mkdir /opt/java

# 将我们准备好的软件包放到刚创建的文件夹中
ADD jdk-8u202-linux-x64.tar.gz /opt/java/
 
# 设置环境变量
ENV JAVA_HOME /opt/java/jdk1.8.0_202
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

注意上面的Dockerfile是固定名称,不能随意修改。否则就会报这个错误了

代码语言:javascript
复制
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/cnhuashao/dockerfile_create/docker_jdk/Dockerfile: no such file or directory

4、基于上面的文件开始编译

代码语言:javascript
复制
docker build -t='centos_jdk' .

注意命令后面的[.],表示当前目录下寻找,-t是指定一个镜像名字,可以省略

代码语言:javascript
复制
cnhuashao@cnhuashao:~/dockerfile_create/docker_jdk$ docker build -t='centos_jdk' .
Sending build context to Docker daemon    194MB
Step 1/9 : FROM centos:latest
 ---> 5d0da3dc9764
Step 2/9 : MAINTAINER cnhuashao
 ---> Running in 598c894822dd
Removing intermediate container 598c894822dd
 ---> 24bd4c5e0cb9
Step 3/9 : WORKDIR /opt
 ---> Running in 8ba6c094071a
Removing intermediate container 8ba6c094071a
 ---> 0627b2aa523e
Step 4/9 : RUN mkdir /opt/java
 ---> Running in e26cd5ab1936
Removing intermediate container e26cd5ab1936
 ---> 55f75b7c63c8
Step 5/9 : ADD jdk-8u202-linux-x64.tar.gz /opt/java/
 ---> f4de75816469
Step 6/9 : ENV JAVA_HOME /opt/java/jdk1.8.0_202
 ---> Running in bfe5b73e056f
Removing intermediate container bfe5b73e056f
 ---> ef7bc968af7d
Step 7/9 : ENV JRE_HOME $JAVA_HOME/jre
 ---> Running in 289ec0ed9b4c
Removing intermediate container 289ec0ed9b4c
 ---> e338d2e42572
Step 8/9 : ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
 ---> Running in c31b1a27d5c9
Removing intermediate container c31b1a27d5c9
 ---> a38976712316
Step 9/9 : ENV PATH $JAVA_HOME/bin:$PATH
 ---> Running in fd49d2cb3ae3
Removing intermediate container fd49d2cb3ae3
 ---> c62ad4394489
Successfully built c62ad4394489
Successfully tagged centos_jdk:latest

我们的镜像中使用了centos,当本地没有时将会自动根据预配置(默认配置)的远程仓库拉取。而我们在Dockerfile中使用的jdk包在编译过程中将自动被解压到指定目录下。

5、创建一个容器并进入测试

代码语言:javascript
复制
cnhuashao@cnhuashao:~/dockerfile_create/docker_jdk$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos_jdk   latest    c62ad4394489   2 minutes ago   634MB
cnhuashao@cnhuashao:~/dockerfile_create/docker_jdk$ docker run -it centos_jdk /bin/bash
[root@f7565c0dcf12 opt]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

OK至此我们的本地镜像创建完毕,下一篇我们将讲述如何将其放到我们自己的docker hub账号下。欢迎持续关注

本文声明:

本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022.02.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker容器——创建一个自定义jdk1.8镜像
    • 背景
    • 开发环境
    • 内容
      • 1、在宿主机中创建我们本次使用的目录,并进入其中
      • 2、进行下载jdk1.8,存放到我们刚才创建好的docker_jdk目录下,同时在该路径下开始第三步。
      • 3、进行编写Dockerfile
      • 4、基于上面的文件开始编译
      • 5、创建一个容器并进入测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档