Dockerfile:自定义镜像

news/2024/10/18 7:50:53/

Dockerfile 是一个文本文件,其中包含了一系列用于自动化构建Docker镜像的指令。通过编写Dockerfile,开发者能够明确地定义一个软件应用及其运行环境应该如何被封装进一个可移植、可重复构建的Docker镜像中。  

第一步:在/tmp文件下新建docker-demo文件夹,把需要的jdk、dockerfile、jar包传入其中

其中Dockerfile文件内容为:

第二步:执行docker build -t javaweb:1.0 .语句

docker build -t javaweb:1.0 . 是一条Docker命令,用于构建一个新的Docker镜像。这条命令执行的具体操作和含义如下:

  1. docker build:这是Docker的构建命令,用于根据Dockerfile构建一个新的镜像。

  2. -t javaweb:1.0:这里的 -t 是标签(tag)标志,后面跟着的是镜像的名字和标签。在这个例子中,新建镜像的名字是 javaweb,标签是 1.0。这意味着一旦构建成功,新的镜像将被打上 javaweb:1.0 的标签,方便后续使用和引用。

  3. .:最后的点(.代表当前目录。Docker会查找当前目录下的Dockerfile,并基于此文件中的指令逐条执行,最终生成一个新的Docker镜像。Dockerfile中包含了构建镜像所需的所有步骤,如设置基础镜像、复制文件、运行命令等。

总结起来,这条命令就是在当前目录下根据Dockerfile构建一个名为 javaweb,标签为 1.0 的Docker镜像。

第三步:输入命令:docker images,查看是否已经创建好Docker

第四步:输入docker run --name web -p 8090:8090 -d javaweb:1.0,用于创建一个全新的容器实例

docker run 是 Docker 的命令,用于运行一个新的容器实例。这条命令的具体参数含义如下:

  • --name web: 指定运行的新容器的名称为 "web",这样在后续操作中可以通过名称来引用或管理这个容器。

  • -p 8090:8090: 端口映射,将宿主机(host machine)的8090端口映射到容器内部的8090端口。这意味着任何发送到宿主机8090端口的网络请求都将被转发到容器内监听8090端口的应用程序。

  • -d: 以守护进程(detached)模式运行容器,即在后台运行容器,并不会与当前终端绑定。

  • javaweb:1.0: 指定要运行的镜像名称及其标签。这里的 "javaweb" 是镜像的名字,"1.0" 是镜像的标签。这意味着 Docker 会根据这个名称和标签查找本地已经下载好的镜像,如果没有下载则会尝试从 Docker Hub 或其他注册表中拉取该镜像。

所以,整条命令的作用是:根据 javaweb:1.0 镜像创建并启动一个新的容器,容器名为 "web",并在后台运行。同时,将宿主机的8090端口映射到容器内部的8090端口,这样外部可以通过宿主机的8090端口访问容器内运行的应用服务。

总结:

1.Dockerfile的本质是一个文件,通过指令描述镜像的构建过程
2.Dockerfile的第一行必须是FROM,从一个基础镜像来构建
3.基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine


http://www.ppmy.cn/news/1401937.html

相关文章

[创业之路-102] :结构化思考:产学研人才联合创业公司的特点、优点与困境

目录 前言: 一、什么是产学研 1.1 什么是产学研 1.2 什么是产学研人才联合创业 二、产、学、研的区别、各自的特点 2.1 产业(产)特点 2.2 其次,学术(学)特点 2.3 科学研究(研&#xff0…

TheMoon 恶意软件短时间感染 6,000 台华硕路由器以获取代理服务

文章目录 针对华硕路由器Faceless代理服务预防措施 一种名为"TheMoon"的新变种恶意软件僵尸网络已经被发现正在侵入全球88个国家数千台过时的小型办公室与家庭办公室(SOHO)路由器以及物联网设备。 "TheMoon"与“Faceless”代理服务有关联,该服务…

【unity】如何汉化unity Hub

相信大家下载安装unity后看着满操作栏的英文,英文不好的小伙伴们会一头雾水。但是没关系你要记住你要怎么高速运转的机器进入中国,请记住我给出的原理,不懂不代表不会用啊。现在我们就来把编译器给进行汉化。 第一步:我们打开Uni…

[Godot] 3D拾取

CollisionObject3D文档 Camera3D文档 CollisionObject3D有个信号_input_event,可以用于处理3D拾取。 Camera3D也有project_position用于将屏幕空间坐标投影到3D空间。 extends Node3D#是否处于选中状态 var selected : bool false #摄像机的前向量 var front : V…

.NET 开发支持技术路线 .Net 7 将停止支持

.NET 开发技术路线图 微软方面强调,使用 .NET 7 的应用程序将在支持结束后继续运行,但用户可能无法获得 .NET 7 应用程序的技术支持。他们不会继续为 .NET 7 发布新的安全更新,用户可能会面临安全漏洞问题。 开发人员必须使用 .NET 8 SDK 构建…

C#实现身份证格式验证(自建异常实现提醒)

基本信息 中国居民身份证的格式包括18位数字,这些数字分别代表不同的信息: 第1、2位数字表示省份代码。 第3、4位数字表示城市代码。 第5、6位数字表示区县代码。 第7至14位数字表示出生年、月、日(其中7、8、9、10位是年,11、12…

酷得单片机方案 2.4G儿童遥控漂移车

电子方案开发定制,我们是专业的 东莞酷得智能单片机方案之2.4G遥控玩具童车具有以下比较有特色的特点: 1、内置充电电池:这款小车配备了可充电的电池,无需频繁更换电池,既环保又方便。充电方式可能为USB充电或者专用…

AJAX(二):axios 和 fetch函数发送AJAX请求、同源策略、 jsonp、CORS

一、各种发送AJAX请求 jquery基于回调函数,axios基于promise 1.axios发送AJAX请求!!! axios (v1.5.0) - Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 Node.js 中。 | BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务 服务器: app.…