docker学习笔记——Dockerfile

Dockerfile是一个镜像描述文件,通过Dockerfile文件可以构建一个属于自己的镜像。

如何通过Dockerfile构建自己的镜像:

  1. 在指定位置创建一个Dockerfile文件,在文件中编写Dockerfile相关语法。

  2. 构建镜像,docker build -t aa:1.0 .(指定Dockerfile文件所在位置)

当我们进行build的时候,会将Docketfile所在文件的所有东西全部打包加载,可以使用ignore文件进行忽略。

并且其在构建镜像的时候是会一步步的构建出临时镜像,并且缓存起来,只是不对外暴露,我们只能看到最终打包好的镜像,docker会将临时镜像缓存起来,以后构建其他镜像时,如何有重复的命令,就可以使用其缓存的镜像。

1.命令

  • touch Dockerfile:创建Dockerfile。

1.第一行命令,基于某个镜像来构建——FROM 镜像名称

2.RUN命令表示执行某命令——RUN yum install -y vim

 3.EXPOSE命令表示声明容器中的服务端口——EXPOSE 8081

4.ENV命令可以设置全局变量——

 5.WORKDIR命令表示进入容器后的落脚点,没有此目录会自动创建—WORKDIR /目标目录

6.ADD命令可将URL/文件下载到镜像中,可以结合上面的地址配合使用,如下:

7.volume数据卷声明,只是声明而已:  

8.CMD和ENTRYPOINT,它们两个都是用来指定容器启动时的默认命令的,一个指令可以存在多个,但是只会有最后一个生效,一般场景下它们两个是相互配合进行使用的,entrypoint用来表示一个容器固定的指定,cmd用来给entry传递参数。注意:配合使用时必须使用json数组语法。

 

ENTRYPOINT必须写在CMD的上面,因为是按照顺序执行的!

启动时可对CMD的参数进行覆盖:  

2.举例

3.拓展

注意:open-jre镜像,就相当于是在linux操作系统上只有一个jre而已,然后我们把jar包什么的,扔到其容器的任意一个目录下面,启动后因为有环境支持,正常运行即可。

可以基于open-jre来作为基础镜像构建我们自己的镜像,创建一个目录,下面创建Dockerfile文件,将jar包放到目录的下面,和Dockerfile同级,然后就可以编写Dockerfile语法,如下:

注意:将mysql容器启动之后,一定要将我们的构建镜像起的容器和mysql挂载到一个我们自定义的网桥上,这样后端的连接mysql接口的地址就可以通过容器名称去访问了。

4.Dockerfile的一些问题

 

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

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

相关文章

如何用YOLOv8实现图像分割

1. 介绍 在之前的文章中,介绍了如何使用 YOLOv8 在不同的编程语言来检测图片中的对象。然而,YOLOv8 还可以把检测到的目标图像分割出来,本篇文章将介绍如何使用YOLOv8做图片分割。 对象检测的结果是所有检测到的对象的边界框。图像分割的结果是所有检测到的对象的蒙版。它是…

Spring官网中查看MongoDB的API文档的详细步骤

目录 Spring官网中查看MongoDB的API文档的详细步骤1、进入 Spring 官网2、选择 Mongodb的文档介绍3、点击API文档4、进入文档查询页面 Spring官网中查看MongoDB的API文档的详细步骤 1、进入 Spring 官网 首先进入Spring的官网,然后点击【Spring Data】 2、选择 Mon…

Ubuntu23.10安装FFmpeg及编译FFmpeg源码

安装FFmpeg: 打开终端: 输入 sudo apt install ffmpeg 安装成功: 验证FFmpeg 默认安装位置与库与头文件位置 使用FFmpeg源码编译: 1.安装YASM sudo apt-get install yasm

Python 全栈系列233 部署chatglm系列接口部署

说明 在国产大模型里,chatglm应该算是效果不错的,目前开源的三个版本都部署过。第一代的不太行,第二代,第三代的效果都还可以,但第三代对第二代似乎不是帕累托改善。在微调方面做了修改,但是显得比较乱。第…

VUE3项目学习系列--项目基础配置(四)

目录 一、环境变量配置 二、SVG图标配置 三、注册组件为全局组件 四、集成sass 1、安装依赖 2、添加文件 3、配置 一、环境变量配置 项目开发过程中会经历开发环境、测试环境、生产环境三种状态,对与环境变量的配置需求不同,因此需要在项目中进行环…

最新全流程GMS地下水数值模拟及溶质(包含反应性溶质)运移模拟技术深度应用

本文以地下水数值模拟软件GMS操作,本文中强调模块化教学,分为前期数据收集与处理;三维地质结构建模;地下水流动模型构建;地下水溶质运移模型构建和反应性溶质运移构建5个模块;采用全流程模式将地下水数值模…

个人网站展示(静态)

大学期间做了一个个人博客网站,纯H5编码的网站,利用php搭建了一个留言模块。 有需要源码的同学,可以联系我~ 首页: IT杂记模块 文人墨客模块 劳有所获模块 生活日志模块 关于我 一个推崇全栈开发的前端开发人员 微信: itrzzh …

我们的一生都是在挤火车。

哈喽,你好啊,我是雷工! 昨天从燕郊坐火车回石家庄,由于赶上元旦假期,所有高铁票都售罄,一张普通火车票,还是一周前就买才买到的。 从燕郊站,到北京站,然后地铁去北京西站…

2024年掌握人工智能的顶级课程

[AI 课程推荐] 谷歌、微软、哈佛大学, DeepLearning.AI都发布了免费的人工智能和ChatGPT的课程。 以下是 2024 年掌握人工智能的顶级课程: GOOGLE - 生成式人工智能学习路径微软- 为每个人提供生成式人工智能微软 - 人工智能初学者入门哈佛 - CS50 的 Python 人工智能简介Deep…

C++11的简单介绍(上)

1.C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于C03(TC1)主要是对C98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并…

牛客周赛 Round 36 解题报告 | 珂学家 | 状态DP + 构造 + 9棵树状数组

前言 整体评价 今天相对容易,E的构造题,感谢出题人极其善意的Case 1, 算是放水了。F题是个很典的结论题,由于存在动态点修改,所以引入树状数组做区间和的快速计算。 A. 小红的数位删除 题型: 签到 s input()print (s[:-3])B. …

超越基础:提升你的数据采集策略与IP代理的高级应用

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …