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”。

相关文章
|
6月前
|
应用服务中间件 Shell nginx
Docker进阶:深入了解 Dockerfile
Dockerfile 是定义 Docker 镜像内容和构建步骤的文本文件,用于定制化镜像构建,包括基础镜像选择、软件安装和环境变量设置等。其优点在于支持容器化趋势,简化快速部署和交付,保证环境一致性,实现资源隔离和安全性,以及促进持续集成与持续部署。Dockerfile 指令如 FROM(指定基础镜像)、RUN(执行命令)、CMD(容器启动命令)和 EXPOSE(声明端口)。编写规则包括使用大写指令、创建 .dockerignore 文件排除无关文件等。
169 0
|
6月前
|
缓存 Shell Go
dockerfile笔记
dockerfile笔记
70 0
|
6月前
|
JSON 关系型数据库 数据格式
Docker-Dockerfile学习
Docker-Dockerfile学习
67 0
|
Java Shell Linux
41-Dockerfile-Dockerfile简介
41-Dockerfile-Dockerfile简介
|
应用服务中间件 开发工具 Docker
Docker学习视频关于DockerFile部分
Docker学习视频关于DockerFile部分
|
Docker 容器
Dockerfile笔记
照着写就行
111 0
Dockerfile笔记
|
运维 Java Shell
Dockerfile学习
Dockerfile学习笔记
|
Java 应用服务中间件 开发者
DockerFile 小总结 | 学习笔记
快速学习 DockerFile 小总结
DockerFile 小总结 | 学习笔记
|
Java Linux Shell
Dockerfile 是什么|学习笔记
快速学习 Dockerfile 是什么
Dockerfile 是什么|学习笔记
|
开发者 Docker 容器
DockerFile 小总结|学习笔记
快速学习 DockerFile 小总结
DockerFile 小总结|学习笔记
下一篇
无影云桌面