当前位置: 首页 > news >正文

Docker10:DockerFile的介绍与指令说明

DockerFile

DockerFile介绍

dockerfile是用来构建 dokcer镜像的文件!命令参数脚本! 构建步骤:

  • 1、编写一个 dockerfile文件
  • 2、 docker build构建成为一个镜像
  • 3、 docker run运行镜像
  • 4、 docker push发布镜像( DockerHub、阿里云镜像仓库!)

查看官方是怎么做的
请添加图片描述
请添加图片描述
很多官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像!


DockerFile的构建过程

  • 基础知识
    • 1、每个 保留关键字(指令)都是必须是大写字母
    • 2、执行从上到下顺序执行
    • 3、#表示注释
    • 4、每一个指令都会创建提交一个新的镜像层,并提交!
      请添加图片描述
      dockerfile是面向开发的,我们以后要发布项目,做镜像,就需要编写 dockerfile文件,这个文件十分简单!
      Docker镜像逐渐成为企业交付的标准,必须要掌握!
      步骤:开发,部署,运维。。。缺一不可!
    • DockerFile:构建文件,定义了一切的步骤,源代码
    • Dockerlmages:通过 DockerFile构建生成的镜像,最终发布和运行的产品!
    • Docker容器:容器就是镜像运行起来提供服务器

DockerFile的指令

FROM
#基础镜镜像,一切从这里开始构建
MAINTAINER
#镜像是谁写的,姓名+邮箱
RUN
#镜像构建的时候需要运行的命令
ADD
#步骤: tomcat镜像,这个 tomcat压缩包!添加内容
WORKDIR
#镜像的工作目录
VOLUME
#挂载的目录
EXPOSE
#暴露端口配置
CMD
#指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT
#指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD
#当构建一个被继承 DockerFi门e这个时候就会运行 ONBUILD的指令。触发指令
COPY
#类似ADD,将我们文件拷贝到镜像中 
ENV
#构建的时候设置环境变量!  比如。构建es时候制定了大小,,,构建mysql 的时候指定了用户密码

请添加图片描述

实战:构建自己的 ubuntu


Docker Hub中99%镜像都是从这个基础镜像过来的 FROM scratch ,然后配置需要的软件和配置来进行的构建
请添加图片描述

请添加图片描述
请添加图片描述

docker build -f mydockerfile-ubuntu -t(tag) myubuntu:0.1 .(构建当前的路径)


自己在build中遇到的问题

请添加图片描述

请添加图片描述


请添加图片描述
我们增加之后的镜像
请添加图片描述
我们可以列出本地进行的变更历史
请添加图片描述
我们平时拿到一个镜像,可以研究一下它是怎么做的了?

相关文章:

  • Java求数组所有子数组的两种方法
  • j2cache入门使用
  • dockerkubernets篇(二十七)
  • 操作系统--用JavaScript实现银行家算法
  • js严格模式
  • MySQL数据库——使用聚合函数查询
  • Java Excel 合并单元格 Java Excel 实现尾部添加数据 Java Excel 合并单元格 添加数据 poi excel 合并单元格
  • SSM仓库管理系统毕业设计-附源码061015
  • 猿创征文|Docker【配置好的镜像】 迁移到【新服务器】上 不需要重新配置环境参数·爽
  • 关于现代化应用和云原生应用
  • R语言矩阵运算:矩阵转置、计算逆矩阵、两个矩阵的相乘、构建nxn对角(单位)矩阵
  • 数据结构————堆
  • 【GNN报告】Mila实验室/蒙特利尔大学朱兆成:基于图神经网络的知识图谱推理
  • ssm大型商场移动导游系统的设计与实现毕业设计源码100853
  • springboot日结工管理小程序毕业设计-附源码070940
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • “大数据应用场景”之隔壁老王(连载四)
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • jquery ajax学习笔记
  • nodejs调试方法
  • Python3爬取英雄联盟英雄皮肤大图
  • uva 10370 Above Average
  • VUE es6技巧写法(持续更新中~~~)
  • Vue.js 移动端适配之 vw 解决方案
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • WinRAR存在严重的安全漏洞影响5亿用户
  • Yeoman_Bower_Grunt
  • 大快搜索数据爬虫技术实例安装教学篇
  • 代理模式
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 排序(1):冒泡排序
  • 数据结构java版之冒泡排序及优化
  • 自定义函数
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​queue --- 一个同步的队列类​
  • ###项目技术发展史
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (SpringBoot)第二章:Spring创建和使用
  • (算法二)滑动窗口
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .net core 连接数据库,通过数据库生成Modell
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net操作Excel出错解决
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [20140403]查询是否产生日志
  • [20190113]四校联考
  • [BJDCTF2020]The mystery of ip
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]
  • [c#基础]DataTable的Select方法
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)
  • [EFI]MSI GF63 Thin 9SCXR电脑 Hackintosh 黑苹果efi引导文件