Dockerfile 文件结构、docker镜像构建过程详细介绍
【Docker那些事】系列文章
Dockerfile 文件结构、docker镜像构建过程详细介绍
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
构建Docker镜像指南,含实战案例
Docker 制作自定义化的Tomcat镜像
docker 安装 mysql 并映射数据库存放路径及配置文件
docker安装tomcat 映射配置文件、日志文件
docker安装nginx,配置nginx,并成功访问
docker安装redis并将配置文件和数据文件映射到外部
Dockerfile 基础介绍
Dockerfile是构建镜像的指令文件,由一组指令组成,文件中每条指令对应linux中一条命令,在执行构建Docker镜像时,将读取Dockerfile中的指令,根据指令来操作生成指定Docker镜像。
Dockerfile文件的编写需要准守一定的规则,Dockerfile的基础文件规则如下:
- 每条保留字指令都必须是大写字母,并且后面要跟随至少一个参数
- 指令按照从上到下,顺序执行
- #开头的表示注释
- 每条指令都会创建一个新的镜像层,并对镜像进行提交
执行Dockerfile的基本流程
- docker从基础镜像运行一个容器
- 执行一条指令并对容器作出修改
- 执行类似 docker commit 的操作,提交一个新的镜像层
- docker在基于刚提交的镜像再运行一个新容器
- 执行dockerfile中的下一条指令直到所有指令都执行完成
Dockerfile的指令结构
FROM 镜像名 : 指定新的镜像所基于的基础镜像
MAINTAINER 名字 : 说明新镜像的维护人,留下作者名和邮箱标记
RUN 命令 : 容器构建时需要运行的命令。在所基于的基础镜像上执行命令,并提交到新的镜像中
EXPOSE 端口号 : 指定新镜像加载到Docker时要对外暴露的端口
WORKDIR 路径名 : 指定在容器创建后,终端默认登陆后进入的工作目录。为后续的RUN 、CMD、ENTRYPOINT 指定工作目录
ENV 环境变量 变量值 : 设置一个环境变量的值,可以在后续RUN指令使用
ADD 源文件/目录 目标文件/目录 : 将文件或目录复制到镜像目标文件中,并且会自动处理URL和解压tar压缩包。文件和Dockerfile位于同一目录
COPY 源文件/目录 目标文件/目录 : 与ADD相似,将文件或目录复制到镜像目标文件中。源文件和Dockerfile位于同一目录
VOLUME [“目录”] : 在容器中挂载一个数据卷,用于数据保存和持久化工作
CMD [“要运行的程序”,“参数1”,“参数2”] : 指定启动容器时要运行的命令或脚本。可以有多个CMD指令,但只有最后一个生效。CMD会被docker run
指令后的参数替换
ENTRYPOINT [“要运行的程序”,“参数1”,“参数2”] : 和CMD一样,指定启动容器时要运行的命令或脚本。ENTRYPOINT不会被docker run
指令后的参数替换,而是在其后追加参数
ONBUILD 命令 : 指定所生成的镜像作为一个基础镜像时所要运行的命令。
USER 用户名 /UID : 指定运行容器时的用户
Dockerfile 文件结构、docker镜像构建过程详细介绍相关推荐
- docker history 查看docker镜像构建过程 还原dockerfile 查看启动参数
介绍: ~]# docker history --help Usage: docker history [OPTIONS] IMAGE Show the history of an image Opt ...
- Vue第三部分(1):Vue脚手架构建过程详细介绍和案例
Vue-CLI 基本使用 命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算 ...
- 【工作向】docker镜像构建方法与命令
序言 docker镜像制作,学习记录 1. docker镜像制作的常见方法 1.1 docker commit基于已有容器构建镜像(手工) 这种方法将已有容器存为新的镜像,但是不建议使用使用这种方式, ...
- Docker 镜像构建之 Dockerfile
Docker 镜像构建之 Dockerfile 在 Docker 中构建镜像最常用的方式,就是使用 Dockerfile.Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜 ...
- Docker学习(3)-Docker镜像构建和使用
Docker学习(1)-Docker简介 Docker学习(2)-Docker基础1 Docker 镜像与制作 Docker 镜像内是否包含内核(bootfs)? 首先,从镜像的体积大小来说,一个比较 ...
- 追求极简:Docker镜像构建演化史
// Dockerfile.target.alpine 自从2013年dotCloud公司(现已改名为Docker Inc)发布Docker容器技术以来,到目前为止已经有五年多的时间了.这期间Dock ...
- docker 导入镜像_官方下一代Docker镜像构建神器 -- BuildKit
BuildKit是Docker官方社区推出的下一代镜像构建神器--可以更加快速,有效,安全地构建docker 镜像.Docker v18.06已经集成了该组件.BuildKit可用于多种导出格式(例如 ...
- skywalking—docker镜像构建k8s部署
前言 skywalking是个非常不错的apm产品,但是在使用过程中有个非常蛋疼的问题,在基于es的存储情况下,es的数据一有问题,就会导致整个skywalking web ui服务不可用,然后需要a ...
- 从Docker镜像构建演化史来了解多阶段构建的影响
现在很多开发者都会慢慢习惯在开发环境通过Docker来构建开发环境,有时候可能会有环境移植的问题,所以需要我们写好一套Dockerfile来构建相关的开发镜像,既然说到镜像,那我想问问大家了解Dock ...
最新文章
- 杭电 HOJ 1251 统计难题 解题报告
- 解微分方程_matlab
- Vue全家桶 + webpack 构建单页应用初体验
- 初学ArcGIS API for JavaScript
- RNN-LSTM循环神经网络-03Tensorflow进阶实现
- 太监式的自主知识产权研发特色 (Z)
- 【DP】方格计数(nowcoder 20107-B)
- JavaOne和OOW 2015总结
- 利用cookies实现对弹出窗口频率的控制
- ZF环境要求及如何配置
- 等保测评--网络安全等级保护实施指南
- 机器学习流程及详细内容(4)
- eclipse多线程调试
- Python 用均匀分布验证中心极限定理
- tableau和oracle dv,比较Power BI和Tableau,好比用奔驰对比奥迪
- 最新微信公众号文章数据导出软件工具
- U盘启动模式USB-HDD/HDD+/ZIP/ZIP+/CDROM/FDD的区别
- dw2019连接mysql数据库_VS 2019 连接MySQL数据库配置记录
- 开源Go语言数值算法库 An open numerical library purely based on Go programming language
- 二次规划及qpoases简要介绍