DockFile体系结构以及案例演示

保留字指令及含义:

  FROM

基础镜像,当前新镜像是基于哪个镜像的

  MAINTAINER

镜像维护者的姓名和邮箱地址

  RUN

容器构建时需要运行的命令

  EXPOSE

容器对外暴露的端口号

  WORKDIR

指定在创建容器后,终端默认登录进来的工作目录(未指定默认根目录)

  ENV

用来在构建镜像过程中设置环境变量

  ADD

将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

  COPY

类似ADD,拷贝文件和目录到镜像中
将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置

  VOLUME

容器数据卷,用于保存和持久化工作

  CMD

指定一个容器启动时要运行的命令
DockerFile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之后的参数替换

  ENTRYPOINT

指定一个容器启动时要启动的命令
ENTERPOINT的目的和CMD一样,都是在指定容器启动程序及参数

  ONBUILD

当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

案例一:

centos镜像默认没有vim和net-tools工具,通过编写DockerFile创建容器使之安装vim和net-tools

1
2
3
4
5
6
7
8
9
FROM centos
ENV myPath /tmp
WORKDIR $myPath

RUN yum install -y vim
RUN yum install -y net-tools

EXPOSE 80
CMD /bin/bash
如果你觉得有帮助,慷慨如你,可以扫描下面的二维码赞赏一下