栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker部署springBoot 项目--- 手动把jar打成docker 的image

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker部署springBoot 项目--- 手动把jar打成docker 的image

制作镜像的参考文章

Docker将jar包制作为镜像,在Docker环境运行 - 简书 (jianshu.com)

Docker 在容器中运行springboot的jar包,挂载外部yml配置文件_慌途L-CSDN博客_docker运行jar包挂载外部文件

目录

制作镜像的参考文章前期准备

安装docker启动docker查看docker 运行状态把要打包成镜像的jar 包上传到服务器创建外置appliction.yaml配置文件(根据dockerfile指向的外置文件进行配置)创建Dockerfile 配置文件 ==创建镜像(arpro:v2.9 后面的 .别删除)==

查看创建好的镜像 启动镜像——>容器

查看是否运行查看运行日志 防火墙设置

允许 9257 接口通过防火墙查看放行端口列表 验证效果

前期准备 安装docker
(1)yum 包更新到最新
> yum update
(2)安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
> yum install -y yum-utils device-mapper-persistent-data lvm2
(3)设置yum源为阿里云
> yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安装docker
> yum install docker-ce -y
(5)安装后查看docker版本
> docker -v
 (6) 安装加速镜像
 sudo mkdir -p /etc/docker
 sudo tee /etc/docker/daemon.json <<-'EOF'
 {
  "registry-mirrors": ["https://0wrdwnn6.mirror.aliyuncs.com"]
 }
 EOF
 sudo systemctl daemon-reload
 sudo systemctl restart docker
启动docker
# 启动docker:
systemctl start docker
查看docker 运行状态
# 查看docker状态:
systemctl status docker
把要打包成镜像的jar 包上传到服务器

1,

我新建了个文件夹,用于存放jar 和等会创建的Dockerfile文件

2

切换到上面 1 里创建的那个文件夹里,上传要打包成镜像的arpro-core-1.0.0-snapshot.jar和创建dockerfile文件

core 文件夹里是等会需要使用的 jar包和dockerfile文件(上图里的两个文件是我已经创建好的),从上面截图可以看出来我的目录结构(这个具体根据自己的项目设置)

创建外置appliction.yaml配置文件(根据dockerfile指向的外置文件进行配置)

"–spring.config.location=/data/application-dev.yml"

–spring.config.location //扫描指定位置的 yml文件

/data/application-dev.yml

在centos 上 /data/ 目录下创建一个application-dev.yml 用于保存springBoot 项目使用的一些配置

就是把打包之前项目的本地yml 文件里的内容全部复制到application-dev.yml 文件里,当然我这个是以开发为例。所以结尾是Dev

创建Dockerfile 配置文件
FROM openjdk:8-jdk-alpine
VOLUME /tmp
EXPOSE 9000
ADD app-1.0.0-SNAPSHOT.jar app-2.7
ENTRYPOINT ["java","-jar","/app-2.7","--spring.config.location=/data/application-dev.yml"]

参数解释

FROM openjdk:8-jdk-alpine //使用jdk8作为基础镜像EXPOSE 9000 //暴露容器的9000端口VOLUME /tmp //创建一个容器的挂载目录。这里我注释了,没有指定,会在后面的运行命令中指定容器的挂载点ADD app-1.0.0-SNAPSHOT.jar app-2.7 //将复制指定的app-1.0.0-SNAPSHOT.jar为容器中的app-2.7,相当于拷贝到容器中取了个别名ENTRYPOINT[]//相当于在容器中用cmd命令执行jar包 创建镜像(arpro:v2.9 后面的 .别删除)

docker build -t arpro:v2.9 .

查看创建好的镜像
docker images

启动镜像——>容器
docker run -dit --name arprov2.9 -p 9257:9000 -v /data:/data  arpro:v2.9

参数结束

-p centos 端口:docker端口 // 把docker的端口,通过centos的端口映射出去

-v /centos目录: /docker目录 //把centos指定 目录 挂载到docker的指定目录上

查看是否运行
docker ps

查看运行日志
 docker logs -f 39db9719ea1f  // 39db9719ea1f 这是容器id

防火墙设置 允许 9257 接口通过防火墙
firewall-cmd --zone=public --add-port=9257/tcp --permanent

** 重新加载防火墙,让刚才放行的接口生效**

firewall-cmd --reload
查看放行端口列表
firewall-cmd --list-ports

验证效果

出现这个页面说明,你已经将jar 包制作成镜像。并且已经成功运行!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/733840.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号