dockerfile创建镜像
通过dockerfile创建镜像的第一点就是先创建一个空的目录。
# vim Dockerfile
# This is My frist Dockerfile
# Version 1.0
# Author : Zhoooo!
#Base images
FROM centos
#MAINTAINER
MAINTAINER Jason Wei
#ADD
ADD nginx-1.12.0.tar.gz /usr/local/src
ADD pcre-8.39.tar.gz /usr/local/src
#RUN
RUN yum -y groupinstall "Development tools"
RUN yum -y install openssl-devel
RUN useradd -s /sbin/nologin -M www
#WORKDIR
WORKDIR /usr/local/src/nginx-1.12.0
RUN mkdir -pv /var/tmp/nginx/{client,fcgi,proxy,scgi,uwsgi}
RUN ./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=www --group=www --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre=/usr/local/src/pcre-8.39 && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
CMD ["nginx"]
看一下目录环境。
# ls
Dockerfile nginx-1.12.0.tar.gz pcre-8.39.tar.gz
直接创建
# docker build -t nginx-file .
注意后面有一个点
完成!!!!
下面介绍一下Dockerfile中的一些选项。
FROM 告诉他是以什么镜像为基础的。
MAINTAINER 维护者信息
RUN 后面跟着想要运行的命令
ADD 自动copy文件,如果是压缩包的话,会自动解压
WORKDIR 告诉当前的工作目录
VOLUME 目录挂载
VOLUME ["/tmp/data"]
EXPOSE 暴露的端口
格式 EXPOSE 80 容器的80端口将要被映射 docker run -p 8000 image 8000->80
ENV 环境变量的指定
CMD 容器启动时执行的命令。
格式 CMD ["executable","param1","param2"]