自定义Dockerfile构建运行springboot

自定义Dockerfile构建运行springboot

通过dockerfile生成自定义nginx镜像

!!!docker 必须在linux环境下才能进行如果你是window则需要装虚拟机

新建一个文件名字为Dockerfile,无需后缀 文件完整名就是Dockerfile,也可以自定义dockerfile名, build时用-f指定dockerfile名称

编写dockerfile

# 基于哪个镜像
FROM java:8# 将本地文件夹挂载到当前容器
VOLUME /tmp# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar app.jar
ADD helloWorld.jar app.jar# 声明需要暴露的端口
EXPOSE 8888# 配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","app.jar"]

image-20240123135150114

切换到test2目录执行构建动作。

执行docker build -t helloworld:v3 . -f Dockerfile-spring

以下示例,通过目录下的 Dockerfile-spring 构建一个 helloworld:v3(镜像名称:镜像标签)。

. 代表本次执行的上下文路径

image-20240123135343743

上一节中,有提到指令最后一个 . 是上下文路径,那么什么是上下文路径呢?例如

$ docker build -t nginx:v3 .

上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。

如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。

**Dockerfile的文件名默认为Dockerfile,**这是Docker官方推荐的命名方式。当我们在构建镜像的时候,Docker会默认在当前目录下查找名为Dockerfile的文件,并根据文件中的内容构建镜像。但是,如果你想给Dockerfile取一个自定义的名字,也是完全可以的。

当我们需要使用自定义的Dockerfile名字时,我们需要在构建镜像的时候通过-f或–file参数指定Dockerfile的路径。下面是一个示例:

docker build -f my-dockerfile .

查看是否成功 docker images

image-20240123135744356

运行镜像

docker run --name helloworldtest -p 8888:8888 helloworld:v3

image-20240123135936045

参数说明:

  • –name helloworldtes:容器名称。
  • -p 8888:8888: 端口进行映射,将本地 8888 端口映射到容器内部的 8888 端口。
  • helloworld:v3: 设置容器在在直接运行。

如果想后台运行可以用

docker run --name helloworldtest -p 8888:8888 -d helloworld:v3

-d helloworld:v3: 设置容器在后台运行。

image-20240123140121917

访问成功

image-20240123135952908

image-20240123140013309

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

相同的树[简单]

优质博文:IT-BLOG-CN 一、题目 给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p [1,2,3], q [1,…

敏捷软件研发管理流程- scrum

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速创新…

了解 WebSocket 和 TCP :有何不同

WebSocket — 双向通讯的艺术 简要概述 WebSocket 代表着WebSocket通讯协议,提供了一条用于客户端和服务器间实现实时、双向、全双工通信的渠道。在WebSocket引入之前,网页应用的数据更新依赖于频繁的轮询,这种做法不仅效率低下,…

[python] 过年燃放烟花

目录 新年祝福语 一、作品展示 二、作品所用资源 三、代码与资源说明 四、代码库 五、完整代码 六、总结 新年祝福语 岁月总是悄然流转,让人感叹时间的飞逝,转眼间又快到了中国传统的新年(龙年)。 回首过去&#xf…

异地办公必不可缺的远程控制软件,原理到底是什么?

目录 引言远程桌面连接软件的作用与重要性 基本概念与架构客户端-服务器模型网络通信协议 核心技术组件图形界面捕获与传输输入转发会话管理 性能优化策略带宽优化延迟优化 引言 远程桌面连接软件的作用与重要性 在当今这个高度数字化和网络化的时代,远程桌面连接软…

【动态规划】【状态压缩】【2次选择】【广度搜索】1494. 并行课程 II

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 状态压缩 广度优先搜索 LeetCode1494. 并行课程 II 给你一个整数 n 表示某所大学里课程的数目,编号为 1 到 n ,数组 relations 中, relations[i] [xi, yi] 表示一个先修课的关系&am…

关于服务器解析A记录和CNAME记录的分析

内容提要: 大致讲下理解,dns域名解析这一块 0 . 问题来源 最近搞了一个七牛云上传,然后需要配置融合cdn加速,也就是可以加速域名,中间有一部需要CNAME 域名,也就是将七牛云提供的域名CNAME一下,查阅资料其实就是起一个别名,好访问而已. 方便我们访问云存储,达到加速的效果. …

论文阅读-一个用于云计算中自我优化的通用工作负载预测框架

论文标题:A Self-Optimized Generic Workload Prediction Framework for Cloud Computing 概述 准确地预测未来的工作负载,如作业到达率和用户请求率,对于云计算中的资源管理和弹性非常关键。然而,设计一个通用的工作负载预测器…

2024年碰到这三条红线的电车,坚决不买!

文 | AUTO芯球 作者 | 雷歌 我最近有天夜里打车打到一辆威马汽车,车里乌漆麻黑一片,我好奇地问,“师傅你中控屏咋不打开,太黑了。”师傅带有怨气地吐槽: “X,威马破产了,车机也停了”。 车子…

python算法与数据结构---动态规划

动态规划 记不住过去的人,注定要重蹈覆辙。 定义 对于一个模型为n的问题,将其分解为k个规模较小的子问题(阶段),按顺序求解子问题,前一子问题的解,为后一子问题提供有用的信息。在求解任一子…

全网第一篇把Nacos配置中心客户端讲明白的

入口 我们依旧拿ConfigExample作为入口 public class ConfigExample {public static void main(String[] args) throws NacosException, InterruptedException {String serverAddr "localhost";String dataId "test";String group "DEFAULT_GROU…

拍摄的视频怎么做二维码?视频在线转二维码的技巧

现在学校经常会将学生日常的拍摄的短片做成二维码之后展示给其他人,其他人可以通过扫描二维码来查看个人表现的视频,有些活动视频也会用视频二维码的方式来传播。那么视频二维码制作的方法及步骤是什么样的呢?下面就让小编通过本文来给大家介…

Eclipse 安装使用ABAPGit

Eclipse->Help->Install New software 添加地址 https://eclipse.abapgit.org/updatesite/ 安装完成打开 选择abapGit repositories,先添加仓库 点下图添加自己仓库 如图添加仓库地址 添加完仓库后,点击我的仓库 右键选中行,可以进行push和pu…

自动驾驶IPO第一股及商业化行业标杆 Mobileye

一、Mobileye 简介 Mobileye 是全球领先的自动驾驶技术公司,成立于 1999 年,总部位于以色列耶路撒冷。公司专注于开发视觉感知技术和辅助驾驶系统 (ADAS),并在自动驾驶领域处于领先地位。Mobileye 是高级驾驶辅助系统(ADAS&#…

Vscode编译运行多个C++文件

1.摘要 在使用Vscode编译单个文件网上很多教程,但是对多个文件编译会发现经常出问题,通过不断的借阅网友的教程改进终于完成C运行多个文件教程如下: 2.编译运行过程 2.1 初始配置过程 (1)Vscode以及MinGW配置教程很…

管理类联考-复试-全流程演练-导航页

文章目录 整体第一步:学校导师两手抓——知己知彼是关键学校校训历史 导师你对导师的研究方向有什么认知。 第二步:面试问题提前背——押题助沟通自我介绍——出现概率:100%为什么选择这个专业?今后如何打算?你认为自己…

高并发内存池项目

目录 项目简介什么是内存池池化技术内存池 内存池主要解决的问题定长内存池的设计高并发内存池的整体框架设计thread cachethread cache的整体设计thread cache哈希桶的对齐规则threadcacheTLS无锁访问 central cachecentralcache整体设计central cache 结构设计central cache核…

Redis——高级主题

介绍Redis的高级主题,包括服务器配置、Redis事务、Redis发布和订阅、Pipeline批量发送请求、数据备份与恢复等。 1、服务器配置 在Windows和Linux的Redis服务器里面,都有一个配置文件。Redis配置文件位于Redis安装目录下,在不同操作系统下&…

Redis核心技术与实战【学习笔记】 - 21.Redis实现分布式锁

概述 在《20.Redis原子操作》我们提到了应对并发问题时,除了原子操作,还可以通过加锁的方式,来控制并发写操作对共享数据的修改,从而保证数据的正确性。 但是,Redis 属于分布式系统,当有多个客户端需要争…

【Java知识手册】一.Java开发工具和前言

文章目录 1 Java前言1.1 简介1.2 Java环境搭建1.3 程序的开发步骤1.4 idea开发工具1.5用idea开发一个helloworld 前言:以初学着的身份,准备在该平台整理点最近学习的知识,方便后续查看相关的技术点,有兴趣的可以一块交流学习。目标…