Dockerfile格式
-
FROM //指定基于哪个基础镜像
格式:FROM <image> 或者 FROM <image>:<tag>
比如:
FROM centos
FROM centos:latest -
MAINTAINER //指定作者信息
格式:MAINTAIN <name>
比如:
MAINTAINER zhangsan zhangsan@qq.com -
RUN //镜像操作指令
格式:RUN <command> 或者 RUN [“executable”, “param1”, “param2”]
比如:
RUN yum install httpd
RUN ["/bin/bash", “-c”, “echo hello”] -
CMD // 三种格式:
CMD [“executable”, “param1”, “param2”]
CMD command param1 param2
CMD [“param1”, “param2”]
RUN和CMD看起来挺像,但是CMD用来指定容器启动时用到的命令,只能有一条
比如:
CMD ["/bin/bash", “/usr/local/nginx/sbin/nginx”, “-c”, “/usr/local/nginx/conf/nginx.conf”] -
EXPOSE
格式为 EXPOSE <port> [<port>…] , 比如
EXPOSE 22 80 8443
用来指定要映射出去的端口,比如容器内部我们启动了sshd和nginx,所以我们需要把22和80端口暴漏出去。这个需要配合-P来工作,也就是说在启动容器时,需要加上-P,让它自动分配;如果想指定具体的端口,也可以使用-p来指定 -
ENV
格式 ENV <key> <value>
比如:
ENV PATH /usr/local/mysql/bin:$PATH
主要是为后续的RUN指令提供一个环境变量,我们也可以定义一些自定义的变量
ENV MYSQL_version 5.6 -
ADD 格式 add <src> <dest>
将本地的一个文件或目录拷贝到容器的某个目录里, 其中src为Dockerfile所在目录 的相对路径,它也可以是一个url
比如:
ADD <conf/vhosts> </usr/local/nginx/conf> -
COPY
格式同add
使用方法和add一样,不同的是,它不支持url -
ENTR