Docker部署Spring Boot项目 笔记

最近在看Docker,正好公司要做要一个小功能开发,所以决定拿来练一下手,以下是一些笔记。

创建一个Spring Boot 项目,网上很多这个自己查找一下。

  • 弃用tomcat,选用undertow

       最近看到了一个Web容器,在高负载的情况下号称可以胜过tomcat 和 jetty,那就是undertow。既然是练手,那就抛弃一下tomcat。所以我的项目用的是undertow。

在maven中的配置,不用默认的tomcat


    org.springframework.boot
    spring-boot-starter-web
    
       
          org.springframework.boot
          spring-boot-starter-tomcat
        
    
/dependency>

引入undertow


    org.springframework.boot
    spring-boot-starter-undertow
  • 打包

       将编写好的项目通过maven 打包成jar包,最好在本地先测试一下单独的jar包能独立运行不。不然放到docker再调试有点麻烦。

        这里比如我们通过maven 打包得到的文件问 spring-boot-docker-project-1.0-SNAPSHOT.jar

  • 安装Docker

        我这里使用的是CentOS7.2,安装教程这里不做介绍,网上也比较多。

  • 制作dockerImage
  1. 安装完Docker后,自己新建一个文件夹用来存放Dockerfile和jar包,
  2. 这里示例目录为 /mnt/docker
  3. 将spring-boot-docker-project-1.0-SNAPSHOT.jar 拷贝至  /mnt/docker 文件夹。
  4. 编写Dockderfile ,cd 进入 /mnt/docker ,新建一个Dockerfile
  5. 输入命令touch Dockerfile,然后vi Dockerfile,输入如下内容
    FROM frolvlad/alpine-oraclejdk8:slim
    VOLUME /tmp
    ADD spring-boot-docker-project-1.0-SNAPSHOT.jar app.jar
    RUN sh -c 'touch /app.jar'
    ENV JAVA_OPTS=""
    ENTRYPOINT ["sh","-c","java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar 
     /app.jar"]
    

    最后的ENTRYPOINT 在一行,不要换行,这里因为编辑器的问题换行了。编辑完成后保存Dockerfile。

  6. build镜像,cd 进入 /mnt/docker 目录,然后执行命令

    docker build -t spring-boot-docker:1.0 .

    -t 后面的是可以自定义的,用作镜像的名称。注意最后有个 . 这个很重要!!!! 这里可以配置docker加速,阿里云提供有服务。构建会快一些。

  7. 等待build完成,用 docker images 命令查看是否能看到镜像。
  • 运行项目

        输入命令 

docker run -p 9010:9010 --name chat-message -t 镜像ID

     -p 表示宿主机的端口号这个端口号是对外访问的,后面的端口号是容器的端口号,即项目运行的端口号。注意不要弄错了。

    --name 表示镜像的名称

    -t 后面要跟上镜像的id

至此结束。

你可能感兴趣的:(Docker)