一、Dockerfile简介

Dockerfile其实就是根据特定的语法格式撰写出来的一个普通的文本文件 利用docker build命令依次执行在Dockerfile中定义的一系列命令,最终生成一个新的镜像(定制镜像)

二、Dockerfile 示例与使用

Dockerfile参考示例

Dockerfile使用演示 – docker build

Dockerfile使用命令 – docker build

作用:     根据dockerfile创建镜像

命令格式:     docker build [OPTIONS] PATH | URL | -

命令参数:     PATH        Dockerfile所在路径(文件夹路径),文件名必须是Dockerfile

URL        Dockerfile所在URL地址

OPTIONS:         -t, --tag list        为镜像设置名称和tag

-f, --file string        指定Dockerfile的路径(这是可以使用其他名称命名Dockerfile)

三、Dockerfile 特征

Dockerfile 构建特征(一)

查看官方的Dockerfile:https://github.com/docker-library/docs

Dockerfile 构建特征(二)

Dockerfile必须具备一个FROM命令来进行构建

每一个Dockerfile命令都会构建一层镜像(本质上是每一层都会启动一个容器,执行完命令后,将容器进行提交后,产生新的镜像层)

通过查看下载下来的镜像,发现历史层信息的层ID是missing,其实是因为原本的层id只存在于构建镜像的宿主机上,一旦转移镜像后,历史层消息中将只保留最新一层的ID

四、Dockerfile 命令概述

Dockerfile 命令概述(一)

查看完整介绍

FROM: 指定基础镜像

RUN: 构建镜像过程中需要执行的命令。可以有多条。docker build

CMD:添加启动容器时需要执行的命令。多条只有最后一条生效。可以在启动容器时被覆盖和修改。

ENTRYPOINT:同CMD,但这个一定会被执行,不会被覆盖修改。

MLABELAINTAINER:表明镜像的作者。将被遗弃,被LABEL代替。

EXPOSE:设置对外暴露的端口。

ENV:设置执行命令时的环境变量,并且在构建完成后,仍然生效

ARG:设置只在构建过程中使用的环境变量,构建完成后,将消失

ADD:将本地文件或目录拷贝到镜像的文件系统中。能解压特定格式文件,能将URL作为要拷贝的文件

COPY:将本地文件或目录拷贝到镜像的文件系统中。

VOLUME:添加数据卷

USER:指定以哪个用户的名义执行RUN, CMD 和ENTRYPOINT等命令

WORKDIR:设置工作目录

Dockerfile 命令概述(二)

ONBUILD:如果制作的镜像被另一个Dockerfile使用,将在那里被执行Docekrfile命令

STOPSIGNAL:设置容器退出时发出的关闭信号。

HEALTHCHECK:设置容器状态检查。

SHELL:更改执行shell命令的程序。Linux的默认shell是[“/bin/sh”, “-c”],Windows的是[“cmd”, “/S”, “/C”]。

五、总结

重点掌握: Docker 容器与镜像之间的关系(尤其commit命令的作用和效果)

Dockerfile 的书写规则和使用规则

Docker核心技术之Dockerfile相关推荐

  1. 后端技术杂谈10:Docker 核心技术与实现原理

    Docker 核心技术与实现原理 30 NOV 2017  docker  namespaces  cgroups  unionfs  aufs  server Namespaces 进程 网络 挂载 ...

  2. 【重识云原生】第六章容器6.1.8节——Docker核心技术UnionFS

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...

  3. Docker核心技术学习笔记

    Docker核心技术 文章目录 Docker核心技术 一 .Docker简介 二.Docker安装 前提说明 Docker 的基本组成 安装 centos 7 安装docker 启动hello-wor ...

  4. 深入剖析docker核心技术(namespace、cgroups、union fs、网络)

    深入剖析docker核心技术 前言 docker概述 为什么要用docker Namespace 概述 实现 操作方法 隔离性 常用操作 Cgroups 概述 实现 配额和度量 CPU 子系统 Lin ...

  5. IDEA的Docker插件实战(Dockerfile篇)

    IDEA的Docker插件实战(Dockerfile篇) IntelliJ IDEA的Docker插件能帮助我们将当前工程制作成Docker镜像.运行在指定的远程机器上,是学习和开发阶段的好帮手,本文 ...

  6. Docker核心技术

    整理自<Docker技术入门与实践>(杨保华 戴王剑 曹亚仑) - Docker核心技术一文. Docker是一种基于Linux Container(LXC)技术实现的容器虚拟化技术,现又 ...

  7. Docker(二):Dockerfile 使用介绍

    上一篇文章Docker(一):Docker入门教程介绍了 Docker 基本概念,其中镜像.容器和 Dockerfile .我们使用 Dockerfile 定义镜像,依赖镜像来运行容器,因此 Dock ...

  8. docker build 指定dockerfile

    docker build命令会根据Dockerfile文件及上下文构建新Docker镜像. 构建上下文是指Dockerfile所在的本地路径或一个URL(Git仓库地址). 构建上下文环境会被递归处理 ...

  9. Docker系列07—Dockerfile 详解

    Docker系列07-Dockerfile 详解 1.认识Dockerfile 1.1 镜像的生成途径 基于容器制作  dockerfile,docker build 基于容器制作镜像,已经在上篇Do ...

最新文章

  1. python资料免费-python 资料
  2. 154 Find Minimum in Rotated Sorted Array 2
  3. ItelliJ IDEA开发工具使用—创建一个web项目
  4. 解决 QtCreator 3.5(4.0)无法输入中文的问题
  5. django ----CBV中加装饰器
  6. pandas 空字符串与na区别_pandas中对nan空值的判断
  7. app error login.php,如何解决uniapp登录错误提示问题
  8. C语言中的static
  9. html position属性作用,CSS学习之浅谈position属性
  10. 原生体验挡不住!JavaScript开源跨平台框架NativeScript
  11. 19范数理论及其应用
  12. java 求集合真子集_干货 | 集合与函数概念知识点总结
  13. 自抗扰控制理论(一)ADRC的原理
  14. 对于ARX的简单介绍
  15. 山西农业大学计算机科学与技术分数线,山西农业大学计算机科学与技术专业2016年在湖北理科高考录取最低分数线...
  16. PMOS双电源供电隔离电路(USB接入为电池充电 电池断开供电)
  17. linux make命令error2,make命令出错,求解释。
  18. 强制类型转化(数组名以及数组名取地址)
  19. fedora17 安装配置
  20. 软件质量管理-1-课程介绍

热门文章

  1. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string
  2. 淘宝获取单笔订单信息服务端调用API及流程
  3. 科学处理java.lang.StackOverflowError: null异常
  4. Jquery DIV滚动至浏览器顶部后固定不动代码
  5. 2022-2028年中国光掩膜行业市场行情监测及未来前景规划报告
  6. python with上下文管理
  7. 【JavaScript总结】JavaScript语法基础:BOM
  8. LeetCode中等题之二倍数对数组
  9. LeetCode简单题之换酒问题
  10. 王道考研 计算机网络笔记 第六章:应用层