美文网首页docker
Docker容器——创建一个自定义jdk1.8镜像

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

作者: cn華少 | 来源:发表于2022-02-10 23:54 被阅读0次

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

背景

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

开发环境

  • 系统:Ubuntu
  • 工具:docker

内容

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

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

mkdir dockerfile_create && cd dockerfile_create/
mkdir docker_jdk && cd docker_jdk/

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

访问https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html进行下载,这里需要具有oracle的账号,可以直接注册一个,或者使用如下地址下载
链接: https://pan.baidu.com/s/1n9ulyRlxVsVs4aOxoCIe-w 提取码: nsjw

3、进行编写Dockerfile

vim Dockerfile

文件内容如下

# 基础镜像文件
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是固定名称,不能随意修改。否则就会报这个错误了

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、基于上面的文件开始编译

docker build -t='centos_jdk' .

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

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、创建一个容器并进入测试

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账号下。欢迎持续关注

本文声明:
88x31.png
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

相关文章

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

    Docker容器——创建一个自定义jdk1.8镜像 背景 日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑...

  • Docker从入门到实践

    基本概念 镜像Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器 容器容器是从镜像创建的运...

  • docker相关概念理解

    Docker 镜像(Images):Docker 镜像是用于创建 Docker 容器的模板。 Docker 容器(...

  • Docker 中安装宝塔面板

    下载一个docker镜像 创建docker容器: 创建一个命名为baota(名称自定义) 在后台运行,将宿主机的2...

  • Docker基本操作

    Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。容器是从镜像创建的运行实例,它可以被启...

  • Docker 常用操作指令

    镜像操作 列出docker下的所有镜像 搜索镜像 拉取镜像 删除镜像 容器操作 查看容器 创建与启动容器 创建容器...

  • docker学习笔记

    docker镜像:只读的模板,创建docker容器的基础 docker容器:一个轻量级沙箱,docker利用容器来...

  • Docker基础原理理解

    Docker核心概念 镜像 Docker镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器...

  • Docker入门

    目录 一、Docker介绍二、安装Docker三、镜像管理四、通过容器创建镜像五、通过模板创建镜像六、容器管理七、...

  • Docker的基本使用

    创建镜像 新建一个docker容器,并映射端口号。 查看本地的docker镜像 查看正在运行的docker容器。 ...

网友评论

    本文标题:Docker容器——创建一个自定义jdk1.8镜像

    本文链接:https://www.haomeiwen.com/subject/wcdokrtx.html