分享好友 最新动态首页 最新动态分类 切换频道
Dockerfile命令详细介绍及springboot项目部署案例
2024-12-27 04:56

Dockerfile命令详细介绍及springboot项目部署案例

什么是Dockerfile
Dockerfile可以认为是Docker镜像的描述文件,是由一系列命令和参数构成的脚本。主要作用是用来构建docker镜像的构建文件


以下是本篇文章正文内容,如果某些知识点错误 请指正!谢谢

官方说明:https://docs.docker.com/engine/reference/builder/

保留字作用FROM当前镜像是基于哪个镜像的 MAINTAINER镜像维护者的姓名和邮箱地址RUN构建镜像时需要运行的指令EXPOSE当前容器对外暴露出的端口号WORKDIR指定在创建容器后,终端默认登录进来的工作目录,一个落脚点ENV用来在构建镜像过程中设置环境变量ADD将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar包COPY类似于ADD,拷贝文件和目录到镜像中
将从构建上下文目录中<原路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置
VOLUME容器数据卷,用于数据保存和持久化工作CMD指定一个容器启动时要运行的命令
Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker
ENTRYPOINT指定一个容器启动时要运行的命令
ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及其参数

1.3.1 FROM 命令

  • 基于那个镜像进行构建新的镜像,在构建时会自动从docker hub拉取base镜像 必须作为Dockerfile的第一个指令出现

  • 语法:

     

1.3.2 MAINTAINER 命令

  • 镜像维护者的姓名和邮箱地址[废弃]

  • 语法:

     

1.3.3 RUN 命令

  • RUN指令将在当前映像之上的新层中执行任何命令并提交结果。生成的提交映像将用于Dockerfile中的下一步

  • 语法:

     

1.3.4 EXPOSE 命令

  • 用来指定构建的镜像在运行为容器时对外暴露的端口

  • 语法:

     

1.3.5 CMD 命令

  • 用来为启动的容器指定执行的命令。

  • 注意: Dockerfile中只能有一条CMD指令。如果列出多个命令,则只有最后一个命令才会生效。

  • 语法:

     

1.3.6 WORKDIR 命令

  • 用来为Dockerfile中的任何RUN、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录。如果WORKDIR不存在,即使它没有在任何后续Dockerfile指令中使用,它也将被创建。

  • 语法:

     

1.3.7 ENV 命令

  • 用来为构建镜像设置环境变量。这个值将出现在构建阶段中所有后续指令的环境中(相当于将公共的抽离出来了)。

  • 语法

     

1.3.8 ADD 命令

  • 用来从context上下文复制新文件、目录或远程文件url,并将它们添加到位于指定路径的映像文件系统中。

  • 语法:

     

1.3.9 COPY 命令

  • 用来将context目录中指定文件复制到镜像的指定目录中

  • 语法:

     

1.3.10 VOLUME 命令

  • docker run 命令的-v标识创建的挂载点只能对创建的容器有效

  • 通过doakerfile的 VOLUME指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点

  • 通俗讲:通过 VOLUME 指令创建的挂载点,在通过该镜像创建容器的时候无法指定主机上对应的目录,因为它是自动生成的

     

1.3.11 ENTRYPOINT命令

  • 用来指定容器启动时执行命令和CMD类似

  • 语法:

     

    ENTRYPOINT指令,往往用于设置容器启动后的第一个命令,这对一个容器来说往往是固定的。
    CMD指令,往往用于设置容器启动的第一个命令的默认参数,这对一个容器来说可以是变化的。
    通常这两个指令联合使用,ENTRYPOINT用于指定固定命令,而CMD设置默认参数(这个参数是可变的,根据用户输入的参数而决定)

 
 
 

总结:ENTRYPOINT用来写固定的命令,CMD用来传参,将来可以将java项目的固定命令(java -jar)写在ENTRYPOINT中(ENTRYPOINT[“java”, “-jar”] ,而jar包名字可以当作参数传进来(CMD[“xxx.jar”])。


1.准备springboot项目,准备完毕测试成功,然后将该项目打包成jar包
2.将可运行项目的jar包放入linux虚拟机中

2.1.1 编写Dockerfile

 

2.1.2 构建镜像

 
 
在root用户下创建一个demo的文件夹,要求改文件夹下要有 Dockerfile文件和项目的jar包文件
构建成功

2.1.3 运行镜像

 
 
运行成功,项目正在运行

2.1.4 查看项目部署是否成功

 
2.1.4.1 查看虚拟机IP地址
2.1.4.2 查看springBoot项目接口
2.1.4.3 成功访问hello接口
2.1.4.4 查看项目日志
部署成功

还有一种使用IDEA SFTP远程连接直接可以项目的jar包放入linux虚拟机中、编写Dockerfile文件(还自带提示,前提是安装了Dockerfile插件)

2.2.1 创建一个springBoot的项目,创建时只需勾选web依赖(目录结构如下)

2.2.2 安装Docker插件

2.2.2 进行SFTP连接虚拟机或者是自己的个人服务器

SFTP连接至虚拟机的root目录成功

2.2.3 将springboot项目生成jar包

打开IDEA左下角的Terminal 执行如下命令
mvn package

最新文章
铜川站内SEO与网络营销全方位策略揭秘
铜川整站优化及网络推广策略全解析,从搜索引擎优化、内容营销、社交媒体等方面全面阐述,旨在提升铜川网站在搜索引擎中的排名,吸引更多潜在客户,助力企业实现网络营销目标。随着互联网的飞速发展,企业间的竞争日益激烈,网络营销成为企
陈泽勇:抢抓西商融合机遇 加快高铁康养新城建设
近日,商州区委书记陈泽勇在杨峪河镇调研督导高铁康养新城项目建设,强调要抢抓和西商融合发展机遇,进一步坚定信心,加压奋进,以干克难,全力加快高铁康养新城项目建设。区级领导赵新选、王永生、李文涛一同督导。
百度3d实景导航地图
百度3d实景导航地图是十分不错的全新地图导航应用软件,拥有上亿用户下载使用,软件的各种功能十分的强大,非常的简洁界面,精准的定位系统,能够轻轻松松查询路段信息,输入目的地就能为你推送最优出行线路,百度地图作为新一代人工智能地
活动预告|迈璞工作站启动仪式暨“哲思与梦境”对谈
1为深入贯彻落实教育部、卫健委等十七个部门联合印发的《全面加强和改进新时代学生心理健康工作专项行动计划(2023-2025年)》,充分发挥我系丰富的学术资源和学校心理健康教育专业资源作用,挖掘和发挥朋辈力量,促进学生群体自主学习、互
网址链接跳转外部安全提醒代码
网页的安全性优化是一个越来越被开发者重视的问题,当本站链接点击跳转到第三方外链接时,要弹框提示信息,需要支持jquery引用 。
成品动漫网站入口网页版打不开怎么办?解决办法及常见问题解析
成品动漫网站作为一个热门的动漫资源平台,吸引了大量动漫爱好者的关注。对于许多人来说,访问这个网站可能并不是一件容易的事,尤其是在网页版入口的使用上。如何顺利打开成品动漫网站入口网页版,成为了许多用户关心的问题。在这篇文章中
道滘SEO优化攻略,揭秘企业线上崛起的黄金秘籍
道滘SEO优化推广,助力企业线上崛起!本文深入解析SEO优化策略,涵盖关键词研究、内容优化、外链建设等关键步骤,助企业提升网站排名,扩大网络影响力,实现线上业务增长。掌握这些秘籍,让企业轻松迈入互联网时代。随着互联网的飞速发展,
获市县综合考核一类设区市第一名
  黄健恒、中国江西新闻网全媒体记者周珺/文  全国数字经济百强城市排名跃至第56位  为加快工业发展步伐,赣州市按照“抢位发展、错位发展”的战略要求,深入实施省制造业重点产业链现代化建设“1269”行动计划,并量身打造了“7510
网站关键词优化攻略,全解析推广地址,助力网站独树一帜
关键词优化推广地址全解析,助您网站脱颖而出!通过深入分析关键词策略,精准定位目标用户,优化网站内容与布局,提升搜索引擎排名。掌握地址优化技巧,让您的网站在众多竞争者中脱颖而出,吸引更多流量。随着互联网的飞速发展,越来越多的
相关文章
推荐文章
发表评论
0评