什么是dockerfile?

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Docker通过读取Dockerfile中的指令自动生成映像。
Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以#字符开头则被视为注释。
Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令.

FROM

FROM,说明在哪个镜像的基础上构造镜像,必须在第一个非注释行,为后续命令提供运行环境

MAINTAINER

已过时,提供该dockerfile的制作者信息

LABEL

用于为镜像添加元数据
使用LABEL指定元数据时,一条LABEL指定可以指定一或多条元数据,指定多条元数据时不同元数据之间通过空格分隔。推荐将所有的元数据通过一条LABEL指令指定,以免生成过多的中间镜像。
多条元数据格式
LABEL version=“1.0” description=“这是一个Web服务器” by=“IT笔录”
一条元数据格式
LABEL maintainer=“IX zx18637845633@163.com”

COPY

从宿主机复制文件或目录到容器内的指定路径,容器内的路径必须存在,不能自动创建,下面我们先来一个简单的dockerfile

首先创建一个目录img1作为dockerfile的目录

编写Dockerfile文本,将宿主机文件index.html复制到容器/data/web/html目录中

书写index.html


编写完毕,让我们开始构建第一个镜像为slowlove/ix:v0.1-1,“ ./ ”表示Dockerfile为当前目录下,“ -t” 命名标签

看到三个步骤都运行成功之后,查看镜像,可以看到镜像构造成功

简单测试,可以知道,index.html文本复制成功

刚刚我们使用copy将文本放入镜像,现在我们尝试使用copy将目录也放进镜像,首先复制yum.repos.d目录复制到当前目录下,查看是否复制成功且存在子目录

下面我们开始继续编写Dockerfile文件,将yum.repos.d的全部内容复制到容器的/etc/yum.repos.d/目录中,这个时候注意一个问题,COPY只能将指定的宿主机目录的子文件复制到宿主机,而不能包含其目录本身,因此需要在指定容器目录中指定一个存放其子目录的目录,一般与其同名

下面开始构建镜像

测试,通过查看容器的目录可以看到该目录的所有子目录文件复制成功

Docker镜像篇(1) - 轻松制作镜像 - commit
Docker镜像篇(3) - 玩转Dockerfile指令 - ADD、WORKDIR、VOLUME、EXPOSE

Docker镜像篇(2) - 玩转Dockerfile指令 - FRM、MAINTAINER、LABEL、COPY相关推荐

  1. 【华为云实战开发】2.Docker镜像部署怎么玩才酷炫?

    1 文章目的 本文主要帮助想要或者正在使用容器部署服务的用户,如何将他们的应用部署通过DevCloud部署在华为云上. 2 概述 2.1 Docker Docker是一个开源的引擎,可以轻松的为任何应 ...

  2. Docker学习总结(58)——Dockerfile中,ADD和COPY的区别?

    Dockerfile中的COPY指令和ADD指令都可以将主机上的资源复制或加入到容器镜像中,都是在构建镜像的过程中完成的.COPY指令和ADD指令的唯一区别在于是否支持从远程URL获取资源.COPY指 ...

  3. Docker学习总结(32)——Dockerfile指令详解

    1.ADD 复制文件 ADD指令用于复制文件,格式为: ADD <src>... <dest> ADD ["<src>",... "& ...

  4. dockhub 好用的镜像_玩转docker镜像和镜像构建

    摘要 本文从个人的角度,讲述对于docker镜像和镜像构建的一些实践经验.主要内容包括利用docker hub进行在线编译,下载镜像,dind的实践,对于镜像的一些思考等.本文是对当时微信分享内容的一 ...

  5. Dockerfile 文件结构、docker镜像构建过程详细介绍

    [Docker那些事]系列文章 Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT指令的区别 构建Docker镜像指南,含实战 ...

  6. 【Docker】之 Dockerfile 指令详解

    目录 Dockerfile 基本结构 Dockerfile 指令 指定基础镜像 FROM 维护者信息 MAINTAINER 元数据标签 LABEL 设置环境变量 ENV 镜像构建参数 ARG 指定工作 ...

  7. Docker镜像大小

    都说容器大法好,可是假设没有Docker镜像,Docker该是多无趣啊. 是否还记得第一个接触Docker的时候,你从Docker Hub下拉的那个镜像呢?在那个处女镜像的基础上.你执行了容器生涯的处 ...

  8. (转)Docker镜像结构原理

    以下内容转载自 https://blog.51cto.com/liuleis/2070461 第八篇:Docker镜像结构原理 base 镜像 base 镜像有两层含义: 不依赖其他镜像,从 scra ...

  9. SpringBoot打包成Docker镜像

    1. 本文环境 Maven:3.6.3 (Maven配置参考) SpringBoot version:2.3.4.RELEASE Docker version: 19.03.11 (Docker搭建参 ...

  10. 基于领域知识的Docker镜像自动构建方法

    点击上方蓝字关注我们 基于领域知识的Docker镜像自动构建方法 陈伟1,2, 叶宏杰1,2, 周家宏1,2, 魏峻1,2 1 中国科学院大学,北京 100190 2 中国科学院软件研究所,北京 10 ...

最新文章

  1. 5折交叉验证_交叉验证:评估模型表现
  2. C linux 深入学习 errorfunction的创建
  3. 第22天学习Java的笔记-继承
  4. delphi 中配置文件的使用(*.ini)
  5. css 清除浮动float 嗒嘀嗒滴 ----20181120
  6. 10 文件无效_新手必看!10个CAD常见问题解决技巧
  7. 去中心化数据基础架构Stratos融资183万美元,Spark Digital Capital等参投
  8. 002..NET MVC实现自己的TempBag
  9. 第三次小组实践作业小组每日进度汇报:2017-12-3
  10. oracle11数据库导入,Oracle11g数据库之数据导入导出与事物
  11. java工作流框架jbpm_Jbpm工作流与ssh框架集成
  12. 如何去掉版块前边的有无新帖图标
  13. 带通滤波器作用和用途_带通滤波器是什么,带通滤波器的作用
  14. jQuery.ajax 使用点滴
  15. Blender-绑定动画Auto-Rig Pro 重映射动捕FBX 小K结合 的问题以及解决
  16. QQ也出网页版的了- WebQQ公测中
  17. ios手机 苹果手机 在小程序里面长按图片 后 点击事件失效问题
  18. 利用Cadence Allegro强大的功能节省您调丝印的时间
  19. TCP 协议如何保证可靠传输?
  20. WiFi资源管理器:WiFi Explorer Pro for Mac

热门文章

  1. 天线越大越好吗_路由器的天线是不是越多越好?告知你真实答案,很多人都买错了...
  2. mac 怎么抓取 iphone 手机 日志
  3. MAC M1安装VMware 安装windows11
  4. 如何解决OpenStack上Windows虚机CPU负荷
  5. I2S/IIS总线介绍及相关EMC问题
  6. PID为0的系统空闲进程连接状态为TIME_WAIT
  7. SpingCloud获取当前服务ip地址
  8. 政府行业数据保护方案
  9. Typo Forum
  10. fai 安装debian