Dockerfile 是什么 | 学习笔记

简介: 快速学习 Dockerfile 是什么

开发者学堂课程【Docker 快速入门:Dockerfile 是什么】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/616/detail/9405


Dockerfile 是什么

内容介绍

一.思考回顾

二.Dockerfile 解析

 

上节课讲述在Docker 容器数据卷,容器内添加容器卷时,粗略的讲过Dockerfile。这节课正式学习 Dockerfile 解析,这是很重要的一章。

 

一.思考回顾

上节课用 Dockerfile 写容器卷时的主流步骤:

1.手动编写一个 dockerfile 文件,必须符合 file 的规范

2.编写文件后,直接 docker build 命令执行,获得一个自定义的镜像

3.run

开篇时讲过,最好必备 Linux 的基础,最好懂 maven 理念

maven build

Jar

java-jar ms。 。 。 。

maven 在 keeps 里面有 maven build ,编译成一个 jar ,”java-jar ms。 。 。 。”运行微服务

对比套路与流程,异曲同工之妙

流程:编写—构建—执行

 

二.Dockerfile 解析

1. Dockerfile 是什么

Dockerfile 是用来构建 Docker 镜像的构建文件,(有点像 Linux 脚本)是由一系列命令和参数组成的脚本。

之前看过的  Dockerfile,源码第一行都是由“FROM”开头,关键字标红,都有在最左边标出,标红且全大写。

2.构建三步骤:

编写 Dockerfile 文件— docker build — docker run

3.文件(以我们熟悉的 CentOS 为例)

在 CentOS 6.8 下,在此强调,“docker images”前面打开的美团的界面图,它是精简版的 CentOS ,它的大小只是 199 接近 200 兆,而我们当前使用的 CentOS 6.8 可是接近 4 个 G 左右,4.8 G。有两个 CentOS ,原因是什么?

原来一个是真正的 CentOS 6.8,另一个是跑在 Docker 容器下 200 兆的精简版的 CentOS ,这两个根本不是一回事。

image.png

如图,以我们熟悉的 CentOS 为例,它的大小只有 199.7MB。

我们来学习一下最简单的 dockerfile ,登录 hub.docker.com ,进入 centos ,查找 STARS,可以看到最新的版本是 CentOS 7,点击 CentOS 6.8 进入后有以下程序

FROM scratch
MAINTAINER The CentOS Project<cloud-ops@centos.org>
ADD c68-docker. tar. xz/
LABEL name="CentOS Base Image"\
vendor="Cent0S"\
license="GPLv2"\
build-date=“2016-06-02”

#Default command
CMD["/bin/bash"]

Scrath 字符,(类似于 Java 中的某一字符),是所有镜像文件的基础,来自于 CentOS,而 CentOS 来自于 scrath (基础镜像),本源,源镜像。

MAINTAINER 作者加邮箱,在 DockerFile 体系结构会具体讲解

ADD 后面跟压缩包

LABEL 标签说明

CMD 命令

“docker run-it centos”或者“docker run-it centos/bin/bash”运行并读取某一镜像,根据调成建议,运行。

这两种写法都正确,因为在 CMD 中自带“/bin/bash”,第二种程序执行出来就比第一种程序多一行“/bin/bash”。

相关文章
|
消息中间件 负载均衡 网络协议
ActiveMQ详细配置方案
本文总结ActiveMQ重要的一些配置,包括高可用failover配置、消息策略等。
1308 0
|
JavaScript Go
Vue路由跳转及路由传参
Vue路由跳转及路由传参
|
运维 Devops
阿里云云效操作报错合集之代码域使用codeup进行本地代码迁移提示 repository does not exist,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
IDE 前端开发 Java
IDE报错 NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘
IDE报错 NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘
7937 2
|
自然语言处理 Python
python生成词云图
python生成词云图
|
安全 程序员 API
向大厂看齐!为自己的程序增加自动转储的功能!
向大厂看齐!为自己的程序增加自动转储的功能!
文本搜索命令
文本搜索命令
133 0
云服务器最基本操作——实例管理
云服务器最基本操作——实例管理自制脑图, 介绍了实例有什么用?创建并登陆实例,启动与停止实例,配置的升级与降级,更换操作系统。
221 0
云服务器最基本操作——实例管理
|
存储 容器
数据结构,Map和Set的模型
本文讲解:Map和Set的模型
|
机器学习/深度学习 弹性计算 Kubernetes
支付宝资深技术专家尹博学:新一代金融核心突破之全分布式单元化技术架构
本文整理自2020阿里云线上峰会蚂蚁集团资深技术专家尹博学的主题演讲,为大家分享蚂蚁关于金融级IT架构及分布式架构的思考和应用实践。
支付宝资深技术专家尹博学:新一代金融核心突破之全分布式单元化技术架构