docker应用安装之部署Springboot项目

docker部署springboot项目分为以下2步

  1. springboot项目的JAR包生成镜像文件。
  2. 将镜像文件生成容器,并完成部署。

一、springboot项目的JAR包生成镜像文件

  1. 编写Dockerfile文件。
    执行以下命令:
    mkdir docker  #创建docker文件夹
    cd  docker  
    vim Dockerfile #采用Dockerfile来创建images
    Dockerfile 中 输入以下代码,然后点击Esc键退出编辑后 输入wq保存文件:
    # Docker image for springboot file run
    # VERSION 0.0.1
    # Author: goodboby
    # 基础镜像使用java
    FROM java:8
    # 作者
    MAINTAINER goodboby <[email protected]>
    # VOLUME 指定了临时文件目录为/tmp。
    # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
    VOLUME /tmp 
    # 将jar包添加到容器中并更名为app.jar
    ADD demo-0.0.1-SNAPSHOT.jar app.jar 
    # 运行jar包
    RUN bash -c 'touch /app.jar'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
    项目的 jar 文件作为 “app.jar” 添加到容器的
    


    Dockerfile文件结构解释如下:一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行。(详见Dockerfile文件体系结构,以下只例举了部分说明)
    FROM:指定基础镜像,要在哪个镜像建立。
    MAINTAINER:指定维护者信息。
    WORKDIR:指定当前工作目录。
    EXPOSE:指定容器要打开的端口。
    ENV:定义环境变量。
    COPY :复制本地主机的 (为 Dockerfile 所在目录的相对路径)到容器中的。
    ADD:相当于 COPY,但是比 COPY 功能更强大,格式为 ADD <src> <dest>,该命令将复制指定的 到容器中的 。 其中 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件,复制进容器会自动解压。
    VOLUME:挂载目录,创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
    ENTRYPOINT:配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效。
    CMD:指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。

     

    ENTRYPOINT 和 CMD 的区别:ENTRYPOINT 指定了该镜像启动时的入口,CMD 则指定了容器启动时的命令,当两者共用时,完整的启动命令像是 ENTRYPOINT + CMD 这样。使用 ENTRYPOINT 的好处是在我们启动镜像就像是启动了一个可执行程序,在 CMD 上仅需要指定参数;另外在我们需要自定义 CMD 时不容易出错。

  2. 将springboot的jar包上传到docker目录(Dockerfile文件和jar包必需放在同一个目录),如下图所示:

  3. 生成镜像。
    # docker-demo 为镜像名称,注意最后一个“.”
    docker build -t docker-demo .  
  4. 如下图所示,镜像生成成功。

猜你喜欢

转载自blog.csdn.net/wangqiubo2010/article/details/104133352