Dockerfile构建镜像

Dockerfile介绍

Dockerfile是用来构建docker镜像的文件。

构建步骤:

        1、编写一个dockerfile文件。

        2、docker build 构建为一个镜像。

        3、docker run 运行镜像。

        4、docker push 发布镜像(DockerHub、阿里云仓库)。

Dockerfile基础知识

1、每个保留关键字(指令)都是大写字母。

2、执行顺序是从上到下。

3、# 表示注释。

4、每一个指令都会创建一层新的镜像并提交。

5、Dockerfile中需要调用的文件必须跟Dockerfile文件在同一目录下,或者在其子目录下,父目录或者其它路径无效。

Dockerfile构建镜像_第1张图片

Dockerfile常用指令

FROM                      # 基础镜像,一切从这里开始构建

MAINTAINER           # 作者信息(姓名+邮箱)

RUN                         # 镜像构建的时候需要运行的命令,RUN指令运行在docker build的过程中,而CMD指令运行在基于新镜像启动容器(docker run)时。

CMD                         # 指定这个容器启动的时候要运行的命令,只有dockerfile中的最后一个会生效,CMD指令指定的默认程序会被docker run命令行指定的参数所覆盖

ENTRYPOINT          # 指定这个容器启动的时候要运行的命令,只有dockerfile中的最后一个会生效,与CMD区别在于,由ENTRYPOINT启动的程序不会被docker run命令行指定的参数所覆盖

COPY                       # 类似ADD,复制宿主机上的文件到目标镜像中

ADD                         # ADD指令跟COPY类似,不过它还支持使用tar文件和URL路径。(拷贝的tar文件会自动解压)

WORKDIR               # 镜像的工作目录(进入镜像时默认的工作目录)

VOLUME                  # 挂载的目录

EXPOSE                  # 暴露端口配置

ENV                          # 构建的时候设置环境变量

ONBUILD                 # ONBUILD后面指定的指令在docker build时是不会执行,构建完的镜像在被另一个Dockerfile文件中FROM指令所引用的时才会触发执行。几乎任何指令都可以成为触发器指令,但ONBUILD不能自我嵌套,且不会触发FROM和MAINTAINER指令,多数情况是使用RUN或者ADD。

 SpringBoot项目打包Docker镜像

1、项目打包

2、编写Dockerfile

        FROM java:8

        COPY *.jar /app.jar

        CMD ["--server.port = 8080"]

        EXPOSE 8080

        ENTRYPOINT ["java","-jar","app.jar"]

3、构建镜像

        docker build -t xxxx:xx

小结 

Dockerfile构建镜像_第2张图片

你可能感兴趣的:(docker,容器,java)