首页 > 其他分享 >Docker部署项目实践

Docker部署项目实践

时间:2023-08-02 23:12:17浏览次数:58  
标签:容器 8081 部署 jar 实践 -- 镜像 Docker docker

上一篇文件介绍了《Docker基础》,介绍类介绍如何使用docker发布java项目。

一、 项目打包

首先,Docker部署项目前,先将项目打包好,比如达成jar文件,最好直接测试jar是否可运行,这里指定了端口

1 java -jar your-app.jar --server.port=8081

然后,将打包好的文件放到服务器指定位置

 

二、制作Dockerfile文件

创建Dockerfile文件前要有一个满足项目运行的镜像,比如,项目需要jdk8,这个镜像是创建新镜像的基础,一下创建Dockerfile

1 touch Dockerfile

以下是一些常见的指令:

  • FROM:指定基础镜像,例如 FROM ubuntu:latest
  • RUN:在镜像中执行命令,例如安装软件包,配置环境等。
  • COPY 或 ADD:将本地文件复制到镜像中的指定位置。
  • WORKDIR:设置工作目录。
  • EXPOSE:指定容器运行时监听的端口号。
  • CMD 或 ENTRYPOINT:指定容器启动时要执行的命令。

更多指令可以参考 Docker 官方文档。

vim编辑Dockerfile文件

 1 # 基于哪个镜像
 2 FROM java:8
 3 
 4 # 将本地文件夹挂载到当前容器
 5 VOLUME /tmp
 6 
 7 # 拷贝文件到容器,也可以直接写成ADDserver-1.0.0.jar app.jar,/app.jar是容器的path
 8 ADD  server-1.0.0.jar app.jar
 9 RUN bash -c 'touch /app.jar'
10 
11 # 开放8081端口
12 EXPOSE 8081
13 
14 # 配置容器启动后执行的命令,即java -jar app.jar --server.port=8081命令
15 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","--server.port=8081"]

三、制作镜像

有了Dockerfile文件,便可以创建docker镜像

docker build -t image_name .

1 docker build -t house/user .

注意,最后有“.”参数

通过命令查看镜像

1 docker images

 

 四、运行容器

有了镜像,可以创建容器

1  docker run -d --hostname user --name user-server -p 8081:8081 house/user

-d 表示后台运行

--hostname 表示容器的hostname

--name 表示容器的名称

-p 表示映射的端口,宿主机端口:容器端口

查看正在运行的容器

1 docker ps

如果启动异常可以查询日志

docker logs container_id

 

五、测试项目

如果防火墙没开放端口,需要开放端口

1 firewall-cmd --add-port 8081/tcp --permanent
2 
3 firewall-cmd --reload

再浏览器输入访问地址,测试是否可以访问项目

 

标签:容器,8081,部署,jar,实践,--,镜像,Docker,docker
From: https://www.cnblogs.com/lfhappy/p/17600985.html

相关文章

  • Arthas学习实践
    Arthas是一款线上jvm诊断工具,能够查看java应用到资源使用信息、函数调用统计等,同时还能在不停止jvm运行的情况下,修改运行时代码,查看方法的调用、入参、返回值等。Arthas的关键技术有两方面:java-agent机制与字节码修改(与rasp相同)Arthas采用命令行的方式与用户交互,Arthas的安装过......
  • 云服务器——安装Docker
    Docker版本分为CE(communityedution)和EE(enterpriseedition),这次安装CE版本(社区免费版)。1.准备工作服务器卸载Docker,因为本次是新服务器,并不存在原有Docker,如果不是新装则需卸载旧版本。yumremovedocker\docker-client\docker-client-latest\docker-common\docker......
  • 进程注入如何通过调用栈,使用ML分类来检测——非常值得借鉴,待实践
    4、MachineLearningtoUltimatelyDefeatAdvancedRansomwareThreatsRSA2022的这个分享主题核心讲解了进程注入如何通过调用栈,使用ML分类来检测。当然,勒索的其他本质特征例如文件加密等没有提到。但是其进程注入的检测值得重点关注。Ryukasthemostadvancedformofransomw......
  • 活动预告 | 中国数据库联盟(ACDU)中国行第二站定档杭州,邀您探讨数据库技术与实践!
    数据库技术一直是信息时代中不可或缺的核心组成部分,随着信息量的爆炸式增长和数据的多样化,其重要性愈发凸显。作为中国数据库联盟(ACDU)的品牌活动之一,【ACDU中国行】在线下汇集数据库领域的行业知名人士,共同探讨数据库前沿技术及其应用,促进行业发展和创新,同时也为开发者们提供一个......
  • Docker数据迁移
    背景安装Docker后,所有数据默认存放在/var/lib/docker包括镜像,容器,网络,卷和插件等的数据都存储在这个目录下/var/lib/docker所在分区下存储空间不够,需要将/var/lib/docker所有数据转移到其他分区简介/var/lib/docker/目录中包括以下几个重要的子目录:containers/:这个目录包含......
  • asp.net core docker 部署
    1.添加Dockfile文件#Seehttps://aka.ms/containerfastmodetounderstandhowVisualStudiousesthisDockerfiletobuildyourimagesforfasterdebugging.FROMmcr.microsoft.com/dotnet/aspnet:7.0ASbaseWORKDIR/appEXPOSE80EXPOSE443COPY..ENTRYPOINT["......
  • YApi怎么测试接口: 最佳实践
    接口测试为什么要接口测试?你想想,你们后端团队写了几百个接口,兴高采烈地,直接部署上线,你们开开心心下班去。等到晚上的时候,你发现你们的接口好几个都崩了,这导致了你们产品损失了一大批用户,那个时候你会后悔,后悔啥呢?后悔接口写完后,没有进行 接口测试 。要怎么测试?其实现在市面上已经......
  • Java实践项目 - 商品分类
    Smiling&Weeping----好想回到那个拉钩许诺的年代 1.1商品分类的思路:一次性查询三级分类(一级为美味麒麟榜,二级为闭眼入,第三级为商品)优点:只需要一次查询,根据一级分类显示二级分类是响应较快缺点:数据库查询效率较低,页面首次加载速......
  • Java实践项目 - 购物车模块
    Smiling&Weeping----世界上美好的东西不太多,立秋傍晚从河对岸吹来的风,加入购物车1.数据创建--创建t_cartCREATETABLEt_cart(cidINTAUTO_INCREMENTCOMMENT'购物车数据id',uidINTNOTNULLCOMMENT'用户id',pidINTNOTNULLCOMMENT......
  • JAVA-Springboot实践项目-用户注册
    Smiling&Weeping----我本没喜欢的人,见你的次数多了,也就有了。1.创建数据表1.1.选中数据表:usestore1.2.创建t_user表:2创建用户实......