• docker 构建自己的image 镜像文件


    docker build 构建自己的镜像文件。

    1、在本地工程中运行生成一个springboot的可运行的jar。

    因为我习惯用eclipse,所以在eclipse下新建一个springboot的工程,firstSpringboot的工程。

    maven配置文件中,注意:必须指定生成文件后运行的主函数mian,否则可能导致的结果是无法访问main函数的错误。

    maven配置的pom.xml文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.springboot</groupId>
        <artifactId>firstSpringboot</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.RELEASE</version>
        </parent>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-jasper</artifactId>
            </dependency>
        </dependencies>
        <build>
            <!-- 生成文件的包名称 -->
            <finalName>firstSpringboot</finalName>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <!-- 必须指定主函数 -->
                    <configuration>
                        <mainClass>com.springboot.Application</mainClass>
                        <executable>true</executable>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    View Code

    springmvc中,访问后,会打印出这样一句话。

    执行 maven命令打包,也可通过工具直接build。mvn clean package 或install  都可以。

    生成文件后如图所示。

    2、在本地测试一下是否可访问。

    在本机doc下启动我们的jar包看看看是否可以启动。

    如果没主函数main指定,会报找不到主干数错误。

    doc下启动服务命令:

    java -jar 路径firstSpringboot
    	argetfirstSpringboot-0.0.1-SNAPSHOT.jar

    启动完成,本地测试,在浏览器中输入 :

    http://localhost:8090/hello

    访问通了,可见我们的jar包是ok的,页面展示如下:

    3、在/usr/local下创建一个dockerapp的目录,将本地生成的jar文件上传到docker服务器上的这个目录。/usr/local/dockerapp

    cd /usr/loca
    mkdir dockapp

    然后通过ftp、或者secureCRT将我们的jar包上传到服务器下。

      

    4、在上传文件的目录/usr/local/dockerapp 下新建一个Dockerfile文件,文件内容定义jar包信息在docker容器中的名称。保存文件。

    创建Dockerfile文件。

    文件内容:意思是使用的是jdk8,将firstSpringboot.jar文件添加到docker容器下,并且名字为first-springboot.jar,对外声明启动端口是8090,跟我们的application.yml配置文件一样。最后就是执行命令生成

    ###java8环境镜像
    FROM java:8
    ###复制文件到容器app-springboot
    ADD firstSpringboot.jar /first-springboot.jar
    ###声明启动端口号
    EXPOSE 8090
    ###配置容器启动后执行的命令
    ENTRYPOINT ["java","-jar","/first-springboot.jar"]

    生产可用Dockerfile

    # 若用docker部署,将该文件复制到项目工程下
    FROM openjdk:8-jre-alpine
    VOLUME /tmp
    ADD 项目应用名称-0.0.1-SNAPSHOT.jar app.jar
    # RUN bash -c 'touch /app.jar'
    ENV TZ=PRC
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
    EXPOSE 8761

    执行成功。如图所示:

    5、用docker build -t 文件名称 . 这个命令构建镜像文件image ,后面那个“.”表示当前目录。

    docker build -t first-springboot .

    6、查看镜像文件是否生成。

    docker images

    7、运行docker run 命令启动我们的应用。

    启动应用。

    docker run -p 8080:8090 first-springboot

    服务启动成功,如下图所示

    8、测试应用是否可访问。

    访问地址:http://192.168.5.129:8080/hello

    浏览器显示如下:证明很ok。

    9、测试原端口是否可以访问。

    访问:http://192.168.5.129:8090/hello

    请求失败。。

    10、设置服务在后台运行

    #在后台运行,在run后面加-d
    docker run -d -p 8080:8090 first-springboot
    #查看有哪些容器在运行
    docker ps
    

      如图

     总结:docker部署流程,有点复杂,但是熟练后,应该很简单。接着学。

  • 相关阅读:
    salesforce零基础学习(九十七)Big Object
    关于linux 终端的小命令
    小知识点 之 JVM -XX:MaxGCPauseMillis 与 -XX:GCTimeRatio
    查看SAP HANA数据库最大连接数
    解决Failed to launch preferred application for category TerminalEmulator. Failed to execute child process /usr/lib/x86_64-linux-gnu/xfce4/exo-1/exo-helper-1 (No such file or directory)
    RxJava简析
    《UNIX编程艺术》学习1
    windows下的 长路径
    为什么说「动态类型一时爽,代码重构火葬场」?-强、弱,静态、动态 类型对比
    分布式系统概述(Hadoop与HBase的前生今世)
  • 原文地址:https://www.cnblogs.com/a393060727/p/12078520.html
Copyright © 2020-2023  润新知