常用关键字
dockerfile
FROM mysql:5.6 #FROM指令定义基础镜像,FROM指令必须是第一个指令
MAINTAINER Benjamin <qq.com> #MAINTAINER指令指定维护者信息,此指令为可选
ENV JAVA_HOMR="/usr/local/java" #ENV定义环境变量,后续指令中可以通过$JAVA_HOME来引用环境变量,ENV定义的变量可以在容器中使用
ARG name="xiaolming" #ARG也是定义环境变量,与ENV不同的是,ARG定义的环境变量只能在Dockerfile中使用,在容器中不存在
RUN yum install -y httpd #RUN指令用于运行一个命令,如使用yum安装httpd服务
COPY /file*.txt /file/ #COPY用于复制宿主机文件到容器指定目录,COPY支持通配符
ADD hello-world /app/ #ADD也是用于复制宿主机文件到容器指定目录,ADD也支持通配符,与COPY不同的是,ADD会自动解压文件
WORKDIR /app/ #WORKDIR指令用于用于设置当前工作目录
USER root #USER指令用于切换用户
VOLUME /data #VOLUME指令用于定义匿名卷,表示将容器内的/data目录挂载为匿名卷到宿主机上
EXPOSE 80 8089/udp #EXPOSE用于声明容器端口,如果未指定协议,则默认为TCP,仅仅是声明,并没有绑定宿主机端口映射
CMD ["nginx", "-g", "daemon off;"] #CMD指令的作用是指定容器主进程的默认启动指令
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"] #ENTRYPOINT指令也是指定容器主进程的默认启动指令,但与CMD有区别