一、新建个springboot项目
加入以下代码,打比方这个项目已经开发完成了。
@RestController
public class TestController {
@RequestMapping
public String test() throws UnknownHostException {
String ip4 = Inet4Address.getLocalHost().getHostAddress();
return ip4 + " hello docker!";
}
}
启动运行。
二、打包
点击maven的package,会在项目里面生成target目录,同时会产生一个jar包。
三、新建一个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
然后浏览器访问。
说明已经成功了。当然如果觉得命令行不方便,也可以用maven插件的方式进行build和push。
使用maven插件构建docker镜像、上传镜像