dockerfile是一种可以被docker解释并执行的脚本,拥有自己固定的指令
指令
FROM #基础镜像,一切从这里开始构建
MAINTAINER #镜像是谁写的,名字+邮箱
RUN #镜像构建的时候被需要运行的命令
ADD #格式为ADD <src> <dest>。
该命令将复制指定的<src>到容器中的<dest>.
其中<src>可以是Dockerfile所在目录的一个相对路径(文件或目录)
也可以是一个URL;还可以是一个tar文件(会自动解压为目录)。
WORKDIR #镜像的挂载目录
VOLUME #挂载的目录
EXPOST #保留端口配置
CMD #指定这个容器启动的时候要运行的命令,只有之后一个会生效,可被替代
ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令
COPY #类似ADD,将我们文件拷贝到镜像中
ENV #构建的时候设置环境变量
提前下载tar包
##dockerfile安装nginx
FROM centos:7 #指定基础镜像
RUN yum install epel-release -y && \ #运行命令
yum install nginx -y
CMD ["nginx","-g","daemon off;"] #放在前台运行
##编译
FROM centos:7 #指定基础镜像
LABEL MAINTAINER lyh www.cxzlsh #指定作者
RUN yum install -y gcc gcc-c++ make \ #run执行命令
openssl-devel pcre-devel gd-devel \
iproute net-tools telnet wget curl && \
yum clean all && \
rm -rf /var/cache/yum/*
ADD nginx-1.15.5.tar.gz / #将tar复制到容器中会自动解压
RUN cd nginx-1.15.5 && \ #执行命令
./configure --prefix=usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module %% \
make -j 4 && make install && \
cd / && rm -rf nginx* && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV PATH $PATH:/usr/local/nginx/confi/nginx.conf #env定义环境变量
COPY nginx.conf /usr/local/nginx/conf/nginx.conf #copy将nginx.conf拷贝到容器指定目录
WORKDIR /usr/local/nginx #指定工作目录
EXPOSE 80 #通知 Docker 容器在运行时监听80端口
CMD ["nginx","-g","daemon off;"] #nginx前台运行