场景
使用Dockerfile定制镜像来部署Tomcat项目:
/BADAO_LIUMANG_QIZHI/article/details/99105626
在上面使用Tomcat部署项目之外,还可以使用Dockfile基于openjdk部署jar包项目。
注:
博客:
/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
1、新建SpringBoot项目,使用基本的web项目模板,然后添加一个get接口.
import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/badao")public class DemoController {@GetMapping("/list")public String list(){System.out.println("公众号:霸道的程序猿");return "公众号:霸道的程序猿";}}
2、将此服务打成一个jar包,命名为badao.jar,并将次jar包上传到CentOS服务器上
在根目录下新建目录
cd /
mkdir dockerfiledemo
然后将上面的badao.jar上传到该目录下,在此目录下新建Dockerfile文件
vi Dockerfile
然后将此文件的内容修改为:
FROM openjdk:8-jdk-alpineMAINTAINER "badaodechengxvyuan"LABEL description="公众号-霸道的程序猿"WORKDIR appADD badao.jar /app/badao.jarEXPOSE 9090CMD java -jar /app/badao.jar
3、Dockerfile命令说明
FROM:指定基础镜像,必须为第一个命令
MAINTAINER: 维护者信息
LABEL:用于为镜像添加元数据
ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
WORKDIR:工作目录,类似于cd命令
RUN:构建镜像时执行的命令
CMD:构建容器后调用,也就是在容器启动时才进行调用。
ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。
ENV:设置环境变量
EXPOSE:指定于外界交互的端口
VOLUME:用于指定持久化目录
ARG:用于指定传递给构建运行时的变量
USER:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
ONBUILD:用于设置镜像触发器
4、上面的Dockerfile文件的意思
以openjdk为基础镜像
设置工作目录为app目录
将当前本地目录下badao.jar添加到容器add目录下
暴露9090端口
cmd运行命令启动jar包。
5、编译Dockerfile文件生成Docker镜像
docker build -t badaoimage .
注意这里的镜像名 不能有大写,后面还有一个点
注意:
-t代表目标镜像名
.代表Dockerfile文件路径
如果需要删除旧的镜像
docker rmi 镜像名
构建成功后可以通过
docker images
看到自己构建的镜像
6、运行构建的badaoimage镜像
docker run -d -p 9090:9090 badaoimage
然后查看运行中的容器
docker ps
并且在浏览器中访问get接口成功。
并且查看容器运行的输出日志
docker logs -f 容器ID
如果觉得《CentOS7中使用Dockerfile部署后台jar包》对你有帮助,请点赞、收藏,并留下你的观点哦!