基础镜像信息:FROM ubuntu:l14.04
维护者信息: MAINTAINER docker_user镜像操作指令: RUN mkdir /mnt/temp
容器启动时执行指令: CMD /bin/bash
1.FROM (基于原有的镜像,在此基础上安装配置相关软件)
格式: FROM image_name 或者是 FROM image_name:tag 例如: FROM ubuntu:14.04
注:Dockerfile的第一行命令必须为FROM命令。
2.MAINTAINER(指定维护者信息)
格式: MAINTAINER name 例如: MAINTAINER john
3.RUN
格式: RUN commad 或者是 RUN ["executable","param1","param2"] 例如: RUN mkdir /mnt/cosfs 或者 RUN ["/bin/bash","-c","mkdir /mnt/cosfs"] 前者将在shell终端中运行命令,即/bin/sh -c; 后者则使用exec执行 每一条RUN命令都是在当前镜像基础上执行的,并提交为新的镜像。
4.CMD
支持三种格式 格式: 1. CMD ["executable","param1","param2"]使用exec执行; 2. CMD command param1 param2 在/bin/bash中执行; 3. CMD ["param1","param2"]提供给ENTRYPOINT的默认参数; 指定启动容器时执行的命令,每个Dockerfile只能有一条CMD命令。如果指定了多条命令,只能最后一条会被执行。 如果用户启动容器时指定了运行的命令,则会覆盖掉 CMD 指定的命令。
5.EXPOSE
格式: EXPOSE port [port ...] 例如: EXPOSE 53 80 8443 主要是暴露容器的端口号,在启动容器时需要通过 -P,Docker主机会自动分配一个端口转发到指定的端口;使用 -p,则可以具体指定哪个本地端口映射过来 。
6.ENV
格式: ENV key value 例如: ENV http_proxy http://192.168.205.21:3128 主要是指定一个环境变量,会被后续RUN指令使用,并在容器运行时保持。
7.ADD
格式: ADD src dest 例如: ADD cosfs /mnt/cosfs 该命令是将docker本地的文件或目录src复制到容器中的位置dest,也可以是一个URL或者是一个tar文件。
8.COPY
复制本地主机的src(文件或者目录)为容器中的dest。如果目标路径不存在,会自动创建。格式: COPY src dest 例如: COPY cosfs /mnt/cosfs
9.ENTRYPOINT
有两种格式: 格式:1. ENTRYPOINT ["executable","param1","param2"] 2. ENTRYPOINT command param1 param2 例如: ENV ["/usr/sbin/python","temp.py"] 配置容器启动后执行的命令,ingredients且不可被docker run 提供的参数覆盖。 每个Dockerfile中只能有一个ENTRYPOINT,当指定多个ENTRYPOINT时,只有最后一个生效。
10.VOLUME
格式: VOLUME ["directory"] 例如: VOLUME ["/data"] 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
11.WORKDIR
格式: WORKDIR /path/to/workdir 例如: WORKDIR /var/www/html 为后续的RUN、CMD、ENTRYPOINT指令配置工作目录。 可以使用多个WORKDIR指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。