dockerfile文件详解之基础语法
一般而言 Dockerfile 可以分为4个部分
(1)基础镜像信息,
(2)维护者信息
(3)镜像操作命令
(4)启动时执行指令
1-注释
用 # 来进行注释
(1)基础镜像信息
1-FROM 指定基础镜像
这里给大家介绍一下一个基础镜像 alpine 非常小, 安全高,很多镜像都喜欢用它作为linux的基础镜像来用。
解下的案例我们也用这个基础镜像
#这是一个基础镜像 FROM alpine
2- LABEL 标签
主要是给我们镜像起一个描述的作用。
之前有一个 MAINTAINER ,过时了,我们不用它了, 但是如果看到有的Dockerfile 中有这个标签,我们知道是什么意思就可以了。
那么LABLE 标签怎么用呢?
LABEL maintainer=“dazhang”
name=“demo”
abc=“info1”
cde=“info2”
这个LABLE 可以省略,也就是可以不用写, 重点是下边的。
3- RUN 指令
RUN指令其实就是在linux 系统上跑一些命令,安装文件, 修改文件等操作。
比如我们要安装nginx
具体用什么命令安装需要看 alpine 的文档,这里我先不给大家演示,
我们就用一个简单的指令,先让大家理解
RUN echo dockefiletest
4-CMD 指令
CMD 是镜像启动时执行指令。
镜像启动如果是要运行很多命令:有2中方法
方法1:准备sh 文件
镜像启动运行这个sh 文件(大多数镜像是用这个方法)
方法2: 在CMD 直接写
CMD sleep 10; echo success
基于Dockerfile构建镜像
我们有了Dockerfile 接下来就要 编译生成我们的镜像 ,
#用来注释
#第一部分 基础镜像部分
FROM alpine
#第2部分: 维护者信息LABEL mainatiner="dazhhang" \name="demo" \abc="asdf"#第3部分: 镜像操作指令
RUN echo hello#第4部分: CMD 命令
CMD sleep 300; echo success
然后 在启动容器运行我们生成的镜像。
docker build -t myalpine:v1.0 -f Dockerfile .
-f 是指定我们用哪个Dockerfile 来构建。
. 这个小点代表以当前目录作为构建的基础目录(类似上下文环境)
检查我们的镜像:
docker images
运行镜像
我们这次不用后台运行,用交互模式运行,因为我们制作的镜像 最后是睡10秒,就退出了。
没有阻塞进程。
我们先简单演示一下,后续会讲如何设置阻塞进程,让我们的镜像一直运行。
docker run -it --name=myalpin myalpine:v1.0
这个时候 会等待10秒收输出 success
输出后这个容器就结束了。
docker ps -a
以上就是我们只做一个镜像的最基本的命令。 大概分为4个部分,每个部分都必不可少。
比如我们现在要制作一个 springboot 项目, 那么基础镜像是一个依赖JDK 环境的镜像对吧,
然后 CMD 是一个带有 java -jar 命令,启动我们的jar 包。
下节课 给大家详细介绍每个指令的含义。