Dockerfile笔记

Windows Docker笔记-dockerfile 讲述了dockerfile的概念、作用、命令等,并用案例演示dockerfile命令 阅读详情
1. 是什么
  • Dockerfile是一个包含用于组合镜像指令的文本文档。Docker通过读取Dockerfile中的指令自动生成镜像。
2. 基础知识
  1. 每条指令由保留字和参数组成
  2. 指令中保留字都必须为大写,且后面要跟随至少一个参数
  3. 指令按照从上到下,顺序执行
  4. 每条指令都会创建一个新的镜像层,并对镜像进行提交
  5. # 表示注释
3. 怎么用
  • docker build命令用于从Dockerfile构建映像。
    docker build -f /opt/docker/Dockerfile -t 镜像名称:tag /opt/docker/
    -f:标志指向文件系统中任何位置的Dockerfile,
    -t:指定新镜像名称和tag,
    最后的/opt/docker指定的是 build 上下文。如在命令ADD apache-tomcat-7.0.96.tar.gz /opt/中,apache-tomcat-7.0.96.tar.gz 的位置是相对上下文的。即,虽然ADD指令中直接写的文件名,实际上该文件的真实路径为:/opt/docker/apache-tomcat-7.0.96.tar.gz
4. dockerfile build大致流程
  1. docker从基础镜像运行一个容器
  2. 执行一条指令并对容器做出修改
  3. 执行类似docker commit的操作提交一个新的镜像层
  4. docker 在基于刚提交的镜像运行一个新的容器
  5. 执行dockerfile中的下一条指令,直到所有指令都被执行
5. 保留字
保留字作用说明用法
FROM指定基础镜像必须为第一个指令FROM <image>[:<tag>] [AS <name>]
MAINTAINER指定镜像维护者信息已弃用MAINTAINER <name>
RUN构建镜像时执行的命令RUN <command>
RUN [“executable”, “param1”, “param2”]
CMD指定容器启动时要运行的命令如果CMD用于为ENTRYPOINT 指令提供默认参数,
则应使用JSON数组格式指定CMD和ENTRYPOINT指令。
多个CMD指令时,只有最后一条生效
CMD [“executable”,“param1”,“param2”] (执行形式,这是首选形式)
CMD [“param1”,“param2”] (作为ENTRYPOINT的默认参数)
CMD command param1 param2 (shell form)
ENTRYPOINT指定容器启动时要运行的命令与CMD区别:不会被docker run 后的参数替换掉ENTRYPOINT [“executable”, “param1”, “param2”] (执行形式,首选)
ENTRYPOINT command param1 param2 (shell form)
EXPOSE镜像启动后对外暴露的端口号可被docker run -p 80:80/tcp -p 80:80/udp 覆盖EXPOSE <port> [<port>/<protocol>…]
WORKDIR指定容器的工作目录如果有多个WORKDIR指令时,
后一条是相对于前一条WORKDIR指令的路径
WORKDIR /path/to/workdir
ENV在镜像构建过程中设置环境变量$<key> 引用变量
使用docker inspect和查看值,
并使用它们进行更改docker run --env =
ENV <key> <value>
ENV <key>=<value>
(两者有区别)
ADD从源拷贝到容器中tar类型文件会自动解压(网络压缩资源不会被解压),
可以访问网络资源,类似wget
ADD [–chown=<user>:<group>] <src>… <dest>
ADD [–chown=<user>:<group>] ["<src>",… “<dest>”]
COPY从源拷贝到容器中不会自动解压文件,也不能访问网络资源CPOY [–chown=<user>:<group>] <src>… <dest>
ADD [–chown=<user>:<group>] ["<src>",… “<dest>”]
VOLUME指定宿主机上持久化目录VOLUME ["/data", “data2”]
ONBUILD当构建一个被继承的Dockerfile时运行的命令父镜像在被子继承后,父镜像的ONBUILD触发ONBUILD [INSTRUCTION]
运维系列:Docker学习笔记(3)-- 如何使用Dockerfile构建镜像 Docker学习笔记(3)-- 如何使用Dockerfile构建镜像 阅读详情

相关推荐

Zemax操作33--5倍激光扩束器

5倍扩束

lzy750750的博客 2930

Dockerfile学习笔记

ARG 设置的环境变量仅对 Dockerfile 内有效,也就是说只有 docker build 的过程中有效,构建好的镜像内不存在此环境变量。类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。所以过多无意义的层,会造成镜像膨胀过大。

qq_40859395的博客 809

计算机考研复试面试常问问题 数据结构篇(下)

计算机考研复试面试常问问题 数据结构篇(下) 使用前需知(拒绝白嫖,如果对你有帮助,你只需点个赞就行): 注意:有人在闲鱼上盗卖我的资料,而且还有很多同学买了,请各位擦亮双眼,我是整理出来免费分享给大家的! 大家请多点赞和评论,这样后面的同学更容易百度到,不至于被人盗卖,我就不加水印影响大家使用了! 第一次整理,度不好控制,有不好的地方希望大家理解,后面可能会改进,造福今年之后的同学们! ...

程序员宝藏的博客 1万+

Docker 笔记(八)--Dockerfile

Docker有一组预定义的ARG变量,您可以在Dockerfile中不使用相应的ARG指令的情况下使用这些变量。HTTP_PROXYhttp_proxyFTP_PROXYftp_proxyNO_PROXYno_proxyALL_PROXYall_proxy要使用这些,请使用 --build-arg标志在命令行上传递它们,例如:默认情况下,这些预定义的变量被排除在docker历史记录的输出之外。排除它们可以降低HTTP_PROXY变量中意外泄露敏感身份验证信息的风险。

shijin741231的博客 1762

C++新手也能搞定!Windows下Cesium-Native编译全流程(附依赖下载技巧)

本文为C++新手详细介绍了在Windows系统下编译Cesium-Native库的全流程。重点针对网络环境不佳的情况,提供了手动下载依赖库的实用技巧,并指导用户使用CMake配置、生成解决方案,最终完成编译与测试验证,帮助开发者成功构建这一处理3D地理空间数据的C++运行时库。

weixin_28839549的博客 379

Mac 环境配置jdk、Maven

3、终端打开配置jdk时候建好的脚本文件: open -e .bash_profile。4、查看maven是否安装成功和系统能不能识别maven/mvn命令:⬇️。输入⬇️并保存: 其中第一行JAVA_HOME替换为自己下的jdk路径。,安装编译好的二进制版本,具体安装zip还是tar.gz我看的。5、查看jdk是否安装成功和系统能不能识别java命令:⬇️。至此,我的Mac系统的环境配置jdk、Maven完成!然后就发现我的maven命令还是没作用,不识别,下载后直接安装即可,很快,点几下就OK了。

weixin_42416791的博客 4387

【Docker笔记04】【Dockerfile】

本系列是根据学习记录笔记。因为没有视频课件,部分内容摘自。本系列仅为自身学习笔记记录使用,记录存在偏差,推荐阅读原视频内容或本文参考笔记。

猫吻鱼的博客 1222

【即插即用模块】注意力篇 | ECCV 2024 | DPB:高低频动态分离+双提示融合,PSNR直冲40+!

本文提出了一种基于频率提示的图像恢复方法FPro,通过动态滤波器分离输入特征的高低频分量,并采用双提示块(DPB)进行频域专属提示生成与调制。DPB包含低频提示调制器(LPM)和高频提示调制器(HPM),分别处理不同频段信号,通过生成提示组件并融合解码器特征来优化恢复效果。实验表明,该方法在U型结构中表现优异,尤其适用于分割、底层视觉和多模态任务。模块通过动态无监督频率分离、频域专属提示生成和适配性融合机制,有效解决了传统方法对频域信息关注不足的问题,显著提升了图像恢复质量。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 146

DockerFile笔记

dockerfile面向开发,docker镜像成为交付标准,docker容器则涉及部署运维。

Cristy_Chen的博客 321

Labview如何0基础自学快速入门?(纯干货帖)

讲解了如何学习Labview,Labview如何0基础入门,自学Labview的方法。什么都不会如何学好Labview的分享,欢迎关注文章~文章提供《Labview宝典》pdf下载,和《Labview虚拟仪器数据采集与通信控制》pdf下载

关注我,更多技术问题欢迎私聊~ 2万+

【Bug已解决】Context window exceeded / Token limit reached — Claude Code 上下文窗口超限解决方案

Claude Code 长会话中报上下文窗口/Token 超限,本质是对话历史、文件内容、工具结果累积超过 200K 上限。文中给出 /clear、/compact、分批读大文件、限制工具输出、配置 autoCompact 等完整方案。

一键难忘的博客 6725

Docker下修改文件的几种方法

1.-v 挂载 docker run -v localConfigFile:/containerPath 2.exec进入容器修改 docker exec -it containerID bash 可以安装vi进行修改 3.cp 可以将宿主机的配置文件拷贝到container中, dockercp host/path:/container/path 转载于:https://www.c...

weixin_34029680的博客 8483

Unity中语法糖带来的GC问题 ——那些看起来优雅、实际上在背后偷偷生垃圾的代码

*语法糖(Syntactic Sugar)**指的是编程语言中为了让代码更简洁、易读而提供的简便写法。比如C#中的foreachlambda表达式LINQ自动属性等。语法糖本身不是坏事,但在Unity等对GC敏感的环境下,要警惕语法糖带来的隐式内存分配。合理使用语法糖,关键场合用更“丑陋”但高效的写法,才能保证游戏流畅运行。下面我将更深入地分析Unity中语法糖导致GC的原理、具体场景、检测与优化技巧,并补充一些容易忽视的细节。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 516

Dockerfile思维导图笔记

WOOOLILI 260

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Docker学习笔记:DockerFile

指令说明FROM基础镜像,当前新镜像是基于哪个镜像的,有继承的意味。比如我们可以写或者MAINTAINER镜像维护者的姓名和邮箱地址RUN容器构建时需要运行的命令。比如。EXPOSE当前容器对外暴露的端口WORKDIR指定在创建容器后,终端默认登录的进来工作目录,一个落脚点ENV用来在构建镜像过程中设置环境变量ADD将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包COPY类似ADD,拷贝文件和目录到镜像中。

sinat_38393872的博客 1034

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【docker笔记】DockerFile

要求Centos7镜像具备 vim + ifconfig + jdk8JDK下载镜像地址官网:https://www.oracle.com/java/technologies/downloads/#java8构建Dockerfile。

jinx 1701

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

dockerfile笔记

Dockerfile是一个创建镜像所有命令的文本文件, 包含了一条条指令和说明, 每条指令构建一层, 通过 docker build命令,根据Dockerfile的内容构建镜像,因此每一条指令的内容, 就是描述该层如何构建.有了 Dockefile, 就可以制定自己的docker镜像规则,只需要在Dockerfile上添加或者修改指令, 就可生成 docker 镜像.

jianfeng123123的博客 1171

Dockerfile 笔记

Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像。用于指定持久化目录定义匿名数据卷,可实现挂载功能,可以将内地文件夹或者其他容器中得文件夹挂在到这个容器中。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。避免重要的数据,因容器重启而丢失,这是非常致命的。(容器使用的是 AUFS,这种文件系统不能持久化数据,当容器关闭后,所有的更改都会丢失。避免容器不断变大。VOLUME ["", ""...]VOLUME

TMesh的博客 1061

dockerfile 笔记

指定存储卷, 任何向/tmp写入的信息都不会记录到容器存储层。# 设置JVM运行参数, 这里限定下内存大小,减少开销。# 入口点, 执行JAVA运行命令。#空参数,方便创建容器时传参。# 设置JAVA版本。# 拷贝运行JAR包。

weixin_39689854的博客 505

Docker笔记 —— Dockerfile

文章目录Dockerfile镜像分层Dockerfile基础命令FROMMAINTAINERLABELWORKDIRADDENVDockerfile中的运行指令RUNENTRYPOINTCMD综合案例:用Redis源码编译并构建Redis镜像 Dockerfile Dockerfile是包含一些命令的文本文档,这些命令可以用来描述自定义镜像的信息,并通过docker build命令来构建自定义的镜像 Docker通过读取Dockerfile中的指令,按步自动生成镜像 docker build -t 机构/镜

vcj1009784814的博客 405

Dockerfile模板 笔记250801

多阶段构建:分离构建环境和运行环境非root用户:增强容器安全性层缓存优化:# 正确顺序:COPY . .轻量基础镜像:优先选择-alpine或-slim版本清理缓存:在同一个RUN指令中清理临时文件环境变量管理:使用ENV定义运行时配置健康检查:必须包含以排除无关文件.git*.log.envDockerfile。

kfepiza的博客 1354

docker笔记之DockerFile

文章目录一、DockerFile是什么?二、基本命令命令三、总结 一、DockerFile是什么? dockerfile是一种文档,我们可以在里面添加一些命令,构建属于我们自己的镜像,因为原生的镜像,你通过镜像启动一个容器,并且运行这个容器的时候,很多命令是不能使用的,为了能够做到这一点,扩展命令,方便我们的操作,docker提供了dockerfile让我们自动构建文件。 此外,通过编写Dockerfile生成镜像,可以为开发、测试团队提供基本一致的环境,从而提升开发、测试团队的效率,不用再为环境不统一而

qq_41486775的博客 185

自学dockerfile笔记

自学dockerfile笔记 dockerfile: 1) FROM : FROM 镜像指令指明了当前镜像继承的基镜像,编译当前镜像时会自动下载基镜像 ,如果不指定映像url 则从docker hub 上获取。e.g : FROM ubuntu 2) MA...

weixin_30649859的博客 152

Dockerfile详解 笔记250801

理解 Dockerfile 的每条指令及其细微差别是构建高效、安全、可维护 Docker 镜像的关键。遵循最佳实践,特别是精简镜像、减少层数、使用。

kfepiza的博客 1840
上一篇: JAVA操作CSV
下一篇: Dockerfile使用-集成JAVA Python Redis Tomcat Nginx镜像,Based on Ubuntu18.04
松林羊
博客等级 码龄11年 43粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值