• Docker


    Docker - 部署Java SpringBoot应用程序

    第一步:首先得有一个spring boot的项目 

    第二步:项目打包为jar包,先clean清理,再package打包

    找到项目根目录下的target目录,这里面的jar就是打包好可以部署的jar包

     

     创建编写Dockerfile文件:

    # Docker image for springboot file run
    # VERSION 0.0.1
    # Author: 无心菜
    # 基础镜像使用java
    FROM java:8
    # 作者
    MAINTAINER 无心菜
    # VOLUME 指定了临时文件目录为/tmp。
    # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
    VOLUME /tmp 
    # 将jar包添加到容器中并更名为app.jar
    ADD recordboot-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” 添加到容器的
    ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source

    如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。

    部署文件 

     在服务器 /opt 目录下 创建 myProject 文件夹,将maven打包好的jar包和Dockerfile文件复制到服务器的docker文件夹下(可用WinSCP软件可视化操作)

    mkdir myProject

     在myProject项目下,创建项目对应文件夹 recordboot 

    mkdir recordboot

      

     

     制作镜像

    进入recordboot目录,执行下面命令, 看好,最后面有个"."点! 

    -t 参数是指定此镜像的tag名 

    docker build -t recordboot .

    制作完成后通过docker images命令查看我们制作的镜像

      

    启动容器

    docker run --name recordroom -d --restart=always -p 8096:8095 recordboot 
    -d参数是让容器后台运行 
    -p 是做端口映射,此时将服务器中的8096端口映射到容器中的8095(项目中端口配置的是8095)端口

    通过--restart选项,可以设置容器的重启策略,以决定在容器退出时Docker守护进程是否重启刚刚退出的容器。

    --restart选项通常只用于detached模式的容器。

    --restart选项不能与--rm选项同时使用。显然,--restart选项适用于detached模式的容器,而--rm选项适用于foreground模式的容器。

    在docker ps查看容器时,对于使用了--restart选项的容器,其可能的状态只有Up或Restarting两种状态。

    示例:
    docker run -d --restart=always ba-208
    docker run -d --restart=on-failure:10 ba-208

    访问服务器网站:http://192.168.3.130:8096/Hello/Get

     

    Docker 进入容器命令:

    docker exec -it 775c7c9ee1e1 /bin/bash 

    引用:https://www.jianshu.com/p/397929dbc27d

  • 相关阅读:
    jdbc数据库连接
    判断集合元素唯一的原理-ArrayList的contains和HashSet的contains、add。Map接口、 集合嵌套
    集合、Iterator迭代器、增强for循环、泛型、List接口、Set接口
    String类、字符串缓冲区、正则表达式、
    Date、DateFormat类、Calendar类、基本类型包装类、System类、Math类、Arrays类、大数据运算类
    Java的API及Object类
    java学习中自己平时不注意的一点知识点1:基础知识第一部分
    匿名对象、内部类、包的声明与访问、访问修饰符、
    java 方法重载,引用数据类型整理 ArrayList集合整理
    java 二维数组 方法知识整理
  • 原文地址:https://www.cnblogs.com/1285026182YUAN/p/12422160.html
Copyright © 2020-2023  润新知