Docker之Dockerfile

image

Dockerfile部分

1.基础镜像信息

2.维护者信息

3.镜像操作指令

4.容器启动时执行指令

Dockerfile命令

FROM:指定基础镜像,必须为第一个命令

MAINTAINER: 维护者信息

RUN:构建镜像时执行的命令

ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget

COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源

CMD:构建容器后调用,也就是在容器启动时才进行调用。

ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。

LABEL:用于为镜像添加元数据

ENV:设置环境变量

EXPOSE:指定于外界交互的端口

VOLUME:用于指定持久化目录

WORKDIR:工作目录,类似于cd命令

USER:指定运行容器时的用户名或 UID

ARG:用于指定传递给构建运行时的变量

ONBUILD:用于设置镜像触发器

实战Demo
# This my first nginx Dockerfile
# Version 1.0

# Base images 基础镜像
FROM centos

#MAINTAINER 维护者信息
MAINTAINER tianfeiyu 

#ENV 设置环境变量
ENV PATH /usr/local/nginx/sbin:$PATH

#ADD  文件放在当前目录下,拷过去会自动解压
ADD nginx-1.8.0.tar.gz /usr/local/  
ADD epel-release-latest-7.noarch.rpm /usr/local/  

#RUN 执行以下命令 
RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpm
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all
RUN useradd -s /sbin/nologin -M www

#WORKDIR 相当于cd
WORKDIR /usr/local/nginx-1.8.0 

RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install

RUN echo "daemon off;" >> /etc/nginx.conf

#EXPOSE 映射端口
EXPOSE 80

#CMD 运行以下命令
CMD ["nginx"]

你可能感兴趣的:(Docker之Dockerfile)