今天学了学时下比较流行的docker,光说不能不练,创建一个基于Springboot框架的Java工程练练手吧。
一、先创建一个Springboot工程,创建方式有几种,我选择一种比较方便的方式吧,
访问http://start.spring.io/, 选择maven版本,Springboot版本我选的2.2.3 ,然后点创建工程,将zip包解压到本地,创建一个controller,加上如下代码,端口设置成8012.
将代码运行起来,
所以运行起来没问题。
二、然后就是打jar包,就是在工程中右键点击pom.xml,然后选择Run as ->Maven build…,点完了一个对话框会跳出来。在Goals一项中填入package,然后点Run就行,STS4一顿忙活后,你要打的包在工程下的target目录下就出来了。打开控制台,进去这个Jar文件所在的目录,然后输入 >java -jar SpringBootSample03-0.0.1-SNAPSHOT.jar
同样,你也可以运行jar包,http://localhost:8012/hello 同样能出来画面。
三、接下来就是将jar包放入docker容器中运行。
将jar包放入一个新建目录中,在该目录下创建Dockerfile 文件
vi Dockerfile
然后将下面的内容复制到Dockerfile文件中
FROM java:8
MAINTAINER jack
VOLUME /tmp
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
EXPOSE 8012
ENTRYPOINT ["java","-jar","demo.jar"]
from java:8 拉取一个jdk为1.8的docker image
maintainer 作者是jack
demo-0.0.1-SNAPSHOT.jar 就是你上传的jar包,替换为jar包的名称
demo.jar 是你将该jar包重新命名为什么名称,在容器中运行
expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar
创建好Dockerfile文件之后,执行命令 构建镜像:
docker build -t my/demo .
注意最后的 . 表示 Dockerfile 文件在当前目录下
my/demo 构建之后镜像名称
镜像构建成功之后,就可以运行容器了:
docker run -d --name demo -p 8012:8012 my/demo
然后docker ps 看看你的容器有没有在运行即可