• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Docker部署springboot项目实例解析

    这篇文章主要介绍了docker部署springboot项目实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    创建项目

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
      </parent>
      <groupId>com.topcheer</groupId>
      <artifactId>docker</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>docker</name>
      <description>Demo project for Spring Boot</description>
    ​
      <properties>
        <java.version>1.8</java.version>
        <docker.image.prefix>topcheer</docker.image.prefix>
      </properties>
    ​
      <dependencies>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    ​
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    ​
      <build>
        <plugins>
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
           <plugin>
          <groupId>com.spotify</groupId>
          <artifactId>docker-maven-plugin</artifactId>
          <version>1.0.0</version>
          <configuration>
            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
            <dockerDirectory>src/main/docker</dockerDirectory>
            <resources>
              <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
              </resource>
            </resources>
          </configuration>
        </plugin>
        </plugins>
      </build>
    ​
    </project>

    启动类

    @SpringBootApplication
    @Controller
    public class DockerApplication {
      public static void main(String[] args) {
        SpringApplication.run(DockerApplication.class, args);
      }
      @RequestMapping("/user/find")
      @ResponseBody
      public Object findUser(){
        Map<String, String > map = new HashMap<>();
        map.put("name", "xdclass.net");
        map.put("age","28");
        return map;
      }
    }

    由于harbor没有安装,无法把镜像推到私有镜像仓库上,所以先手动执行。

    mvn install,然后把dockerfile和jar包放到一起

    [root@topcheer docker]# ll
    总用量 16452
    -rw-r--r-- 1 root root   168 10月 28 14:24 Dockerfile
    -rw-r--r-- 1 root root 16842487 10月 28 14:17 docker.jar
    [root@topcheer docker]# cat Dockerfile
    FROM java:8
    VOLUME /tmp
    ADD docker.jar app.jar
    RUN bash -c 'touch /app.jar'
    EXPOSE 8080
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    [root@topcheer docker]#

    编译成镜像并启动

    [root@topcheer docker]# docker build -f Dockerfile -t boot .
    Sending build context to Docker daemon 16.85 MB
    Step 1/6 : FROM java:8
     ---> d23bdf5b1b1b
    Step 2/6 : VOLUME /tmp
     ---> Running in 35037b5a7791
     ---> e96b96457c78
    Removing intermediate container 35037b5a7791
    Step 3/6 : ADD docker.jar app.jar
     ---> 06bcfdcff437
    Removing intermediate container 2e2e5e559ae4
    Step 4/6 : RUN bash -c 'touch /app.jar'
     ---> Running in 16441febc271
    ​
     ---> 1779caa23f77
    Removing intermediate container 16441febc271
    Step 5/6 : EXPOSE 8080
     ---> Running in 14dd752ce247
     ---> 505044f5cdf8
    Removing intermediate container 14dd752ce247
    Step 6/6 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
     ---> Running in 832e4ca95dd2
     ---> 1cb7bd139478
    Removing intermediate container 832e4ca95dd2
    Successfully built 1cb7bd139478
    [root@topcheer docker]# docker images
    REPOSITORY                       TAG         IMAGE ID      CREATED       SIZE
    boot                          latest       1cb7bd139478    About a minute ago  677 MB
    registry.cn-hangzhou.aliyuncs.com/dalianpai/topcheer  zipkin       17c2bb09f482    6 days ago      154 MB
    docker.io/mysql                    latest       c8ee894bd2bd    11 days ago     456 MB
    elasticsearch                     latest       874179f19603    4 weeks ago     771 MB
    docker.io/nacos/nacos-server              latest       a4229ac5cc19    4 weeks ago     710 MB
    springbootdemo4docker                 latest       cd13bc7f56a0    5 weeks ago     678 MB
    docker.io/tomcat                    latest       ee48881b3e82    6 weeks ago     506 MB
    docker.io/rabbitmq                   latest       a00bc560660a    6 weeks ago     147 MB
    docker.io/centos                    latest       67fa590cfc1c    2 months ago     202 MB
    docker.io/redis                    latest       f7302e4ab3a8    2 months ago     98.2 MB
    docker.io/rabbitmq                   3.7.16-management  3f92e6354d11    3 months ago     177 MB
    docker.io/elasticsearch                6.8.0        d0b291d7093b    5 months ago     895 MB
    docker.io/hello-world                 latest       fce289e99eb9    10 months ago    1.84 kB
    docker.io/java                     8          d23bdf5b1b1b    2 years ago     643 MB
    [root@topcheer docker]# docker run -d -p 8080:8080 boot
    882ff5209aa2f40972a914b901750a50320faea65100b33e57b9c8a41533ca0b

    测试

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:基于Docker如何实现MySQL主从复制详解
    下一篇:nginx高可用集群的实现过程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Docker部署springboot项目实例解析 Docker,部署,springboot,项目,