Docker 制作jdk镜像
一、 编写Dockerfie如下,Dockerfile 与 jdk 的gz包在同一级目录FromcentosMAINTAINERgnauhsilRUNmkdir/usr/local/jdk8ADDjdk-8u191-linux-x64.tar.gz/usr/local/jdk8ENVJAVA_HOME/usr/local/jdk8/jdk1.8.0_191ENVJRE_HOME/usr/local
一、 编写Dockerfie
如下,Dockerfile 与 jdk 的gz包在同一级目录
From centos
MAINTAINER gnauhsil
RUN mkdir /usr/local/jdk8
ADD jdk-8u191-linux-x64.tar.gz /usr/local/jdk8
ENV JAVA_HOME /usr/local/jdk8/jdk1.8.0_191
ENV JRE_HOME /usr/local/jdk8/jdk1.8.0_191/jre
ENV PATH $JAVA_HOME/bin:$PATH
1.基础镜像:FROM java:8,当前镜像是基于哪个镜像的,第一个指令必须是FROM
2.作者:MAINTAINER mynah
3.RUN, 构建镜像时需要运行的指令
4.ADD shop.jar /shop.jar,将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar包。
5.镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效 EXPOSE 8099
6.在镜像运行为容器后执行的命令: ENTRYPOINT ["java","-jar","/shop.jar"]
7. ENV, 用来在构建镜像过程中设置环境变量。
8. COPY, 类似于ADD,拷贝文件和目录到镜像中。将从构建上下文目录中
<原路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置
9.VOLUME, 容器数据卷,用于数据保存和持久化工作。
10.CMD, 指定一个容器启动时要运行的命令(对一个容器来说是变化的)。Dockerfile中只能有一个CMD命令,多个命令只有最后一个生效!
11. ENTRYPOINT, 指定一个容器启动时要运行的命令(对一个容器往往是固定的),ENTRYPOINT的目的和CMD一样,都是在指定容器启动成为那个徐及其参数!
二、 进行构建
docker build -t jdk8u191:v1 .
如何查看一个挂了的镜像是什么原因,没有日志怎么看?
更多推荐
所有评论(0)