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的一些问题

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

esp32 idf.py cmd powershell 环境

esp32 idf.py cmd powershell 命令行 环境 win10 推荐使用 Windows Terminal 替换自己路径 设置–>添加新配置文件–>选择cmd 或者 powershell -->保存–> 去修改命令行 启动目录,推荐使用父进程目录 powershell C:\WINDOWS/System32/WindowsPowe…

【STA】SRAM / DDR SDRAM 接口时序约束学习记录

1. SRAM接口 相比于DDR SDRAM,SRAM接口数据与控制信号共享同一时钟。在用户逻辑(这里记作DUA(Design Under Analysis))将数据写到SRAM中去的写周期中,数据和地址从DUA传送到SRAM中,并都在有效时…

关于查看 CentOS7虚拟机的 ip地址

1. 启动网卡 1.1 打开网卡配置文件。 vi /etc/sysconfig/network-scripts/ifcfg-eth01.2 启动网卡 修改为下图中的ONBOOTyes 2. 重启网络服务 sudo service network restart3. 查看ip地址 ip addr

NBlog整合OSS图库

NBlog部署维护流程记录(持续更新):https://blog.csdn.net/qq_43349112/article/details/136129806 由于项目是fork的,所以我本身并不清楚哪里使用了图床,因此下面就是我熟悉项目期间边做边调整的。 目前已经调整的功能…

http协议分析

目录 一、实验目的 二、实验环境 三、实验步骤 四、实验数据记录和结果分析 五、实验体会、质疑和建议 一、实验目的 通过在真实网络环境访问HTTP服务器上网的过程中,捕获HTTP数据报文,分析报文的内容,掌握HTTP报文的构成,理解HTTP协议的工作过程, 二、实验环境…

02-在 ESP-IDF 项目中添加 .c 和 .h 文件的

在 ESP-IDF 项目中添加 .c 和 .h ESP-IDF(Espressif IoT Development Framework)是一个用于开发基于 ESP32 和 ESP8266 微控制器的嵌入式应用程序的框架。在 ESP-IDF 项目中添加新的 .c 和 .h 文件是很常见的,但要确保这些文件能够正确地被编…

C++类和对象(下篇)

目录 一.再谈构造函数 二.static成员 三.友元 四.内部类 五. 再次理解类和对象 一.再谈构造函数 1.构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month…

js 获取浏览器相关的宽高尺寸

window 屏幕 屏幕分辨率的高: window.screen.height 屏幕分辨率的宽: window.screen.width 屏幕可用工作区高度: window.screen.availHeight 屏幕可用工作区宽度: window.screen.availWidth document 网页 网页可见区域宽&#xf…

JavaEE+springboot教学仪器设备管理系统o9b00-springmvc

本文旨在设计一款基于Java技术的教学仪器设备销售网站,以提高网站性能、功能完善、用户体验等方面的优势,解决现有教学仪器设备销售网站的问题,并为广大教育工作者和学生提供便捷的教学仪器设备销售渠道。本文首先介绍了Java技术的相关基础知…

三维不同坐标系下点位姿态旋转平移变换

文章目录 前言正文计算方法思路Python实现总结前言 本文主要说明以下几种场景3D变换的应用: 3D相机坐标系下长方体物体,有本身坐标系,沿该物体长边方向移动一段距离,并绕长边轴正旋转方向转90度,求解当前物体中心点在相机坐标系下的位置和姿态多关节机器人末端沿工具坐标…

Redis基础篇:初识Redis(认识NoSQL,单机安装Redis,配置Redis自启动,Redis客户端的基本使用)

目录 1.认识NoSQL2.认识Redis3.安装Redis1.单机安装Redis2.配置redis后台启动3.设置redis开机自启 4.Redis客户端1.Redis命令行客户端2.图形化桌面客户端 1.认识NoSQL NoSQL(Not Only SQL)数据库是一种非关系型数据库,它不使用传统的关系型数…

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

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

C语言动态内存管理面(下)常⻅的动态内存的错误

我们接着C语言动态内存管理(上)没讲完整的继续来深度讲解。、 4. 常⻅的动态内存的错误 4.1 对NULL指针的解引⽤操作 主要的原因还是自己的粗心大意没有对malloc的值进行判断 void test() { int *p (int *)malloc(INT_MAX/4); *p 20; //如果p的值是…

JavaScript原型和原型链

JavaScript每个对象拥有一个原型对象 需要注意的是,只有函数对象才有 prototype 属性 当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索&#xff…

OpenGrok代码服务器搭建,解决代码检索慢的问题

一、背景 在前一家公司,公司提供了OpenGrok服务器供大家检索查阅代码。但在新公司,大家都使用vscode或Sourse Insight,这就存在一些问题: 不能跳转或者跳转比较慢。 搜索查询速度慢,且结果展示不易查看。 这严重影…

题目:泡澡(蓝桥OJ 3898)

问题描述: 解题思路: 图解:(以题目样例为例子) 注意点:题目的W是每分钟最大出水量,因此有一分钟的用水量大于出水量则不通过。 补充:差分一般用于对一段区间每个元素加相同值&#x…

nicegui学习使用

https://www.douyin.com/shipin/7283814177230178363 python轻量级高自由度web框架 - NiceGUI (6) - 知乎 python做界面,为什么我会强烈推荐nicegui 秒杀官方实现,python界面库,去掉90%事件代码的nicegui python web GUI框架-NiceGUI 教程…

2024护网面试题精选(二)完

0x02. 内网渗透篇 00- 内网渗透的流程 拿到跳板后,先探测一波内网存活主机,用net user /domian命令查看跳板机是否在域 内,探测存活主机、提权、提取hash、进行横向移动,定位dc位置,查看是否有能直接提权域 管的漏洞…

JavaSE面试——多态

多态 1. 多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。 2. 多态性分为编译时多态和运行时多态,方法重载(overload)实现的是编译时多态,而方法重写 &…

【运维】本地部署Gemma模型(图文)

工具简介 我们需要使用到两个工具,一个是Ollama,另一个是open-webui。 Ollama Ollama 是一个开源的大语言平台,基于 Transformers 和 PyTorch 架构,基于问答交互方式,提供大语言模型常用的功能,如代码生…