Dockerfile简介
dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像,
另外,使用Dockerfile去构建镜像好比使用pom去构建maven项目一样,有异曲同工之妙
dockerfile基本结构
Dockerfile 由一行行命令语句组成, 并且支持以#开头的注释行,一般而言, Dockerfile 主体内容分为四部分:
基础镜像信息、 维护者信息、 镜像操作指令和容器启动时执行指令。
部分 | 命令 |
---|---|
基础镜像信息 | FROM |
维护者信息 | MAINTAINER |
镜像操作指令 | RUN、(COPY/ADD)、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等 |
容器启动时执行指令 | CMD、ENTRYPOIN |
Dockerfile就是我们用来构建docker镜像的源码。源码不是指变成的源码,里面没有什么条件语句。就是基本的文本指令。
所以说Dockerfile就是纯文本文件,里面包含了一些指令而已。这些指令是dockerfile当中制作时规定的制作指令,也就一二十个
Dockerfile的语法格式
语法格式由两类语句组成:
#注释信息,由#开头
指令及其参数,一行一个指令一般是这样的。一般指令是写成纯大写的,其 本身不区分大小写。约定俗称是使用大写
是顺序执行的指令。整个dockerfile第一个非注释行的第一个指令必须是FROM指令,指的是做当前镜像必须要基于哪个基础镜像来实现。
所以我们的制作过程是基于已有的镜像基础之上来做的,如果没有,我们需要手动去拼凑去做。这样就麻烦大了。
dockerfile做镜像时的工作逻辑:
我们做docker镜像时不一定是当前目录。但是必须要在某个特定目录下进行才行,找一个专门的目录,在这个目录中放进来我们的dockerfile,而且dockerfile文件名首字母必须大写,如果我们想打包很多文件,那么我们必须做好放在专门目录下(不能是这个目录的父目录,可以是它的子目录中的内容,但是不能超出这个路径的边界)。
Dockerfile详解
- from
说明:基于哪个镜像制作
语法:
FROM :[]
此格式是镜像名+版本号,版本号可不写,不写时就是latest版本
FROM @
此格式是镜像名+hash码
例子:
FORM busybox
FORM busybox@dgsgdfgkjh