一、下载centos镜像

下载自己需要的版本TAG,详见:

docker安装指定版本TAG的镜像

$ sudo docker pull centos:centos7

二、下载jdk1.8,并上传到/usr/local/src目录,然后解压

$ sudo cd /usr/local/src
$ sudo tar zxf jdk-8u201-linux-x64.tar.gz
$ sudo ls
jdk1..0_201 jdk-8u201-linux-x64.tar.gz

三、创建Dockerfile

先在/usr/local目录下创建jdk目录,并将/usr/local/src下的jdk-8u201-linux-x64.tar.gz复制到/usr/local/jdk目录下,然后创建Dockerfile文件

$ sudo mkdir /usr/local/jdk
$ sudo cd /usr/local/jdk
$ sudo cp ../src/jdk-8u201-linux-x64.tar.gz ./
$ sudo ls
jdk-8u201-linux-x64.tar.gz
$ sudo vi Dockerfile
FROM centos:centos7
MAINTAINER tom
RUN mkdir /usr/local/jdk
WORKDIR /usr/local/jdk
ADD jdk-8u201-linux-x64.tar.gz /usr/local/jdk ENV JAVA_HOME /usr/local/jdk/jdk1..0_201
ENV JRE_HOME /usr/local/jdk/jdk1..0_201/jre
ENV PATH $JAVA_HOME/bin:$PATH

四、使用Dockerfile构建jdk1.8镜像

$ sudo docker build -t jdk1. .
Sending build context to Docker daemon .8MB
Step / : FROM centos:centos7
---> 9f38484d220f
Step / : MAINTAINER tom
---> Running in 9ebabac7e9e0
Removing intermediate container 9ebabac7e9e0
---> 6e65e30640c0
Step / : RUN mkdir /usr/local/jdk
---> Running in 5805a4f50285
Removing intermediate container 5805a4f50285
---> 8ebaedf8bd72
Step / : WORKDIR /usr/local/jdk
---> Running in c68e7f94ce6d
Removing intermediate container c68e7f94ce6d
---> f4df19bf9468
Step / : ADD jdk-8u201-linux-x64.tar.gz /usr/local/jdk
---> 1fa5d55acc2e
Step / : ENV JAVA_HOME /usr/local/jdk/jdk1..0_201
---> Running in c9c93a299d59
Removing intermediate container c9c93a299d59
---> 09b5bfd906dc
Step / : ENV JRE_HOME /usr/local/jdk/jdk1..0_201/jre
---> Running in d4509f0c2af8
Removing intermediate container d4509f0c2af8
---> 1d6b070b3985
Step / : ENV PATH $JAVA_HOME/bin:$PATH
---> Running in 190dde73be87
Removing intermediate container 190dde73be87
---> 50016b7aac0c
Successfully built 50016b7aac0c
Successfully tagged jdk1.:latest

五、在镜像仓库中查看是否构建成功

$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jdk1. latest 50016b7aac0c seconds ago 598MB

六、启动jdk容器

$ sudo docker run -di --name=jdk1. jdk1.
e04f670691cd301b28fb56c25b12eae4851f583fa7abac367164a0ee68ad7241

七、进入jdk容器,查看是否安装正确(即查看安装之后的目录)

$ sudo docker exec -it jdk1. /bin/bash
[root@7d539233feb0 jdk]# pwd
/usr/local/jdk
[root@7d539233feb0 jdk]# ls
jdk1..0_201

使用Docker构建jdk1.8镜像的更多相关文章

  1. docker: 构建自己的镜像

    我们给予ubuntu的镜像然后拷贝python的requirement.txt文件进去,再根据这个文件安装对应的python库 拷贝文件到docker容器.首先查找对应的容器ID.然后执行命令 doc ...

  2. Docker构建一个node镜像

    0. 设置国内docker镜像源 进入Settings->Daemon->Advanced,添加如下配置. { "registry-mirrors": [ " ...

  3. docker构建一个简易镜像

    一 下载centos镜像 docker pull centos 二 启动镜像 [root@Centos-node3 ~]# docker run -it --name my_ng centos bas ...

  4. 使用Docker构建基于centos7镜像的python环境

    Dcokerfile配置信息 ############################################## # 基于centos7构建python3运行环境 # 构建命令: 在Dock ...

  5. Geoserver+Openlayers+MySQL设计思想,GeoServer服务器搭建(Docker构建镜像)

    Geoserver+Openlayers+MySQL设计思想,GeoServer服务器搭建(Docker构建镜像) 一.geoserver+openlayers+mysql主要设计思想 1.1 Geo ...

  6. Docker教程:镜像构建和自动镜像构建dockerfile

    http://blog.csdn.net/pipisorry/article/details/50805379 Docker透过Dockerfile来记录建立Container映象文件的每一个步骤,可 ...

  7. Docker 使用 Dockerfile 构建自己的镜像

    可以使用Dockerfile的配置文件方式进行构建自己的镜像 下面利用docker构建一个Caddy web服务器 构建脚本 Dockerfile有自己的命令,下面使用了一些比较常用的命令,更多的Do ...

  8. 物联网架构成长之路(25)-Docker构建项目用到的镜像1

    0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...

  9. Docker 构建镜像

    Docker 构建镜像 1.首先,在项目的根目录下,新建一个文本文件.dockerignore,写入下面的内容. 下面三行代码表示: 1.这三个路径要排除,不要打包进入 image 文件. 2.如果你 ...

随机推荐

  1. Unity5.x Reflection Probe反射探针

    http://blog.csdn.net/yupu56/article/details/53487216

  2. 自制精排 ePub 集、不定期更新(UPDATA-2015-8-2)

    说明 排版不说最好,上乘是必须的. 段落空行 首行缩进 具备清爽元数据 包含高清封面.目录 图片居中,图片标题以下标形式居中位于图片下* 支持多看/Kindle原生系统弹出注释,其他软件跳转注释* 各 ...

  3. golang之math/rand随机数

    简单的随机数生成,结合时间模块初始化种子 package main import ( "fmt" "math/rand" "time" ) ...

  4. PHP逻辑运算符中的and和&&以及or和||是有区别的

    下图是PHP的逻辑运算符: 看图中and和&&都是“与”,而or和||都是“或”,初开起来没有区别,但实际上这里面有一个优先级别的区别,即: &&和||的优先级别要高于 ...

  5. promise、resolve、reject、拦截响应

    Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性.其核心是,promise是一个带有then()函数的对象. 使用promise机 ...

  6. 打开Android Studio时报Unable to access Android SDK add-on list

    第一次安装Android studio时候弹出unable to access android sdk add-on list原因是你电脑没有SDK而且你下载的android studio又是不带SD ...

  7. 快速排序(Quicksort)的Javascript实现(转载)

    日本程序员norahiko,写了一个排序算法的动画演示,非常有趣. 这个周末,我就用它当做教材,好好学习了一下各种排序算法. 排序算法(Sorting algorithm)是计算机科学最古老.最基本的 ...

  8. .NET Core2使用Azure云上的Iot-Hub服务

    基于工业4.0大背景下的工业物联网是近几年内热门的话题,依靠信息化技术企业可以实现数字化转型,生产可以实现智能化制造,设备可以实现自动化运作.然而,海量的数据采集是整个建设过程的基础环节,如何处理与利 ...

  9. 如何在powerdesign15.1中使用自增列

    点击要设置为自增列的列 右键选择properties(或者按下ALT+enter) 点选红框,再点击Microsoft选项卡, 输入开始值和自增值即可 来自为知笔记(Wiz)

  10. [多线程] Thread

    多线程 概述 单任务处理:一个任务完成后才能进行下一个任务. 多任务处理:CPU分时操作,每个任务看似同时运行. 进程 应用程序的一个运行实例,包含程序所需资源的内存区域,是操作系统进行资源分配的单元 ...