Docker部署springboot项目实例解析

 更新时间:2019年10月29日 09:07:08   作者:天宇轩-王  
这篇文章主要介绍了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容器间跨宿主机通信-基于overlay的实现方法

    docker容器间跨宿主机通信-基于overlay的实现方法

    这篇文章主要介绍了docker容器间跨宿主机通信-基于overlay的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Docker快速部署主流脚本语言JavaScript的全过程

    Docker快速部署主流脚本语言JavaScript的全过程

    JavaScript是目前所有主流浏览器上唯一支持的脚本语言,这也是早期JavaScript的唯一用途,下面这篇文章主要给大家介绍了关于Docker快速部署主流脚本语言JavaScript的相关资料,需要的朋友可以参考下
    2023-02-02
  • 谷歌技术人员解决Docker镜像体积太大问题的方法

    谷歌技术人员解决Docker镜像体积太大问题的方法

    这篇文章主要介绍了谷歌技术人员解决Docker镜像体积太大问题的方法,涉及虚拟机,谷歌docker镜像构建实践及构建工具bazel的介绍等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 基于Docker 搭建WordPress的方法

    基于Docker 搭建WordPress的方法

    这篇文章主要介绍了基于Docker 搭建WordPress的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • docker-compose启动redis集群的实现步骤

    docker-compose启动redis集群的实现步骤

    本文主要介绍了docker-compose启动redis集群的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • docker-compose 详解及示例代码

    docker-compose 详解及示例代码

    这篇文章主要介绍了docker-compose 详解的相关资料,并附简单实例,需要的朋友可以参考下
    2016-10-10
  • docker容器无法stop的解决办法

    docker容器无法stop的解决办法

    在本篇文章里小编给大家整理了关于docker容器无法stop的解决办法,有需要的朋友们可以参考下。
    2020-03-03
  • Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down)

    Docker Desktop启动失败的解决(Docker failed to i

    本文主要介绍了Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Docker容器在系统启动时自动运行配置方法

    Docker容器在系统启动时自动运行配置方法

    docker容器化可以使得环境相对独立,减少污染,这篇文章主要给大家介绍了关于Docker容器在系统启动时自动运行配置的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • 如何自己搭建DockerHub实现过程解析

    如何自己搭建DockerHub实现过程解析

    这篇文章主要介绍了如何自己搭建DockerHub实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10

最新评论