利用dockerfile构建一个springboot项目镜像

一、新建个springboot项目

加入以下代码,打比方这个项目已经开发完成了。

@RestController
public class TestController {

    @RequestMapping
    public String test() throws UnknownHostException {
        String ip4 = Inet4Address.getLocalHost().getHostAddress();
        return ip4 + "  hello docker!";
    }
}

启动运行。
利用dockerfile构建一个springboot项目镜像_第1张图片

二、打包

点击maven的package,会在项目里面生成target目录,同时会产生一个jar包。
利用dockerfile构建一个springboot项目镜像_第2张图片

三、新建一个Dockerfile文件

在target目录下新建一个Dockerfile文件,如果是有远程服务器或者虚拟机的,和jar包在同一级目录就行,方便构建。
Dockerfile文件放入以下指令

FROM openjdk:8
ADD ["demo-0.0.1-SNAPSHOT.jar","demo.jar"]
EXPOSE :8080
ENTRYPOINT ["java","-jar","/demo.jar"]

解释一下
第一行:springboot依赖jdk8
第二行:给打好的jar包取个别名
第三行:监听8080端口
第四行:容器运行后执行的命令。

四、构建镜像

pengweiwei@weiweideMacBook-Pro target % docker build -t demo:test .
Sending build context to Docker daemon  17.64MB
Step 1/4 : FROM openjdk:8
 ---> 09df0563bdfc
Step 2/4 : ADD ["demo-0.0.1-SNAPSHOT.jar","demo.jar"]
 ---> c1325e485ee7
Step 3/4 : EXPOSE :8080
 ---> Running in 422593d2f147
Removing intermediate container 422593d2f147
 ---> dbcd5c1559e2
Step 4/4 : ENTRYPOINT ["java","-jar","/demo.jar"]
 ---> Running in 1b94735b5fd8
Removing intermediate container 1b94735b5fd8
 ---> 1653e79bb536
Successfully built 1653e79bb536
Successfully tagged demo:test

输入命令之后会以此执行指令,然后镜像创建成功。

查看一下镜像

在这里插入图片描述
发现构建成功。

五、运行镜像,启动容器

执行 docker run -d --name demo -p 8080:8080 demo:test

然后浏览器访问。
利用dockerfile构建一个springboot项目镜像_第3张图片
说明已经成功了。当然如果觉得命令行不方便,也可以用maven插件的方式进行build和push。
使用maven插件构建docker镜像、上传镜像

你可能感兴趣的:(docker)