- 编译方式:dockerfile
- Linux镜像:centos7
- jdk:jdk1.8.0_144
构建一个基于centos7和jdk1.8的镜像。
1.拉取镜像
拉取Centos7 镜像,这里我是从daocloud中找的:
docker pull daocloud.io/library/centos:centos7
2、编译Dockerfile
新建一个文件,这里命名为jdkdockerfile,将对应的压缩包也copy过来
很多地方都是使用的Dockerfile这种固定名称,其实创建的时候可以通过 -f 来指定dockerfile
dockerfile 内容
FROM daocloud.io/library/centos:centos7
#维护者信息
MAINTAINER shuen
ADD jdk-8u144-linux-x64.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_144
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
1、这里使用的镜像是上面下载的centos镜像;
2、jdk压缩包拷贝到dockerfile同级目录,如果在其它目录拷贝的时候可能出现找不到目录错误;
3、使用ADD指令会直接对jdk-8u144-linux-x64.gz进行解压缩,不用再单独的tar解压jdk了。
3、使用Dockerfile创建镜像
docker build -f jdkDokcerfile -t jdk8
-f :指定要使用的Dockerfile路径;
--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
更多详细信息可以查询:https://www.runoob.com/docker/docker-build-command.html
查看以下是否成功
这时候看到jdk的镜像增长到了580M。
4、 运行创建的镜像
docker run -d -it jdk8 /bin/bash
上面包含两条指令,run创建容器和查看容器。
注意:创建容器的时候一定要使用 -it /bin/bash这种方式,要不然jdk的容器起来后 会马上退出。
5、验证镜像中的jdk
进入容器
docker exec -it[ 容器ID|容器名称]