使用docker部署SpringBoot项目

1.新建一个SpringBoot项目

本身写吧。。。。我放个测试的java

package com.pibigstar.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class IndexController {

    @RequestMapping("/")
    public String toIndex() {
        return "index";
    }

    @RequestMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello pibigstar";
    }

}

2. 打包SpringBoot项目成jar包

3. 编写Dockerfile文件

# Docker image for springboot file run
# VERSION 0.0.1
# Author: pibigstar
# 基础镜像使用java
FROM java:8
# 做者
MAINTAINER pibigstar <741047261@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下建立了一个临时文件,并连接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并改名为app.jar
ADD onlineSpider-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"]

若是是第一次打包,它会自动下载java 8的镜像做为基础镜像,之后再制做镜像的时候就不会再下载了。python

4. 部署文件

若是不会安装docker的能够看我以前的博客。。。这里就不赘述了web

在服务器中新建一个文件夹用来存放咱们的项目文件 mkdir dockerspring

将打包好的jar包和Dockerfile文件上传到此文件夹中,而后进入此文件夹cd dockerdocker

5. 制做镜像

执行下面命令, 看好,最后面有个 . 点!浏览器

docker build -t springboot-demo .

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

制做完成后经过下面命令查看咱们制做的镜像bash

docker images

5. 启动容器

有不少人搞不定镜像和容器的关系,其余他俩比较像java中的类与实例,镜像就比如类,而容器就是镜像的一个实例服务器

执行下面命令启动容器app

docker run -d -p 8081:8080 springboot-demo

-d参数是让容器后台运行
-p 是作端口映射,此时将服务器中的8081端口映射到容器中的8080端口

6. 访问

直接浏览器访问: http://你的服务器ip地址:8081/hello 便可查看效果