NO1:
FROM openjdk:8-jre-alpine
Dockfile开篇首行都是FROM xxxx,格式是FROM [image]:[tag]
说明这个容器是下载openjdk镜像且tag是8-jre-alpine,容器也是基于这个镜像构建的。
Docker仓库地址:
Docker Hubhttps://hub.docker.com/
可以在Docker中查询自己需要的镜像。
NO2:
EXPOSE 8080
EXPOSE做端口声明
NO3:
RUN yum -y install wget \
&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
&& tar -xvf redis.tar.gz
RUN用来执行后面的命令,在docker build时执行。Dockfile的指令每执行一次就会在docker上新建一层,命令过多会导致产生的镜像过大,所以在RUN时将多行命令写成一行。
CMD与RUN类似都是执行后面的命令,但是CMD是在docker run时执行的。
NO4:
ADD target/test-com-docker.0.1-SNAPSHOT.jar /test-com-docker.0.1-SNAPSHOT.jar
ADD指从上下文复制文件到容器中的指定目录
ADD 指令和 COPY 的使用格类似(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:
ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。
ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。
NO5:
ENTRYPOINT ["java","-jar","/test-com-docker.0.1-SNAPSHOT.jar"]
ENTRYPOINT指的时在docker run的时候运行的命令