Dockerfile创建镜像 – Dockerfile示例安装nginx



先下载nginx的配置文件到当前目录下 wget http://www.apelearn.com/study_v2/.nginx_conf 

vim Dockerfile //内容如下

#############################################################

# Dockerfile to build Nginx Installed Containers

# Based on CentOS

#############################################################

#Set the base image to CentOS

FROM centos  #基于docker images的一个centos镜像。

#File Author / Maintainer

MAINTAINER wyp wyp@qq.com   #作者信息

#Install necessary tools    #下列包,也可写在一行。

RUN yum install -y pcre-devel wget net-tools gcc

RUN yum install -y zlib zlib-devel make

RUN yum install -y openssl-devel

# Install Nginx

ADD http://nginx.org/download/nginx-1.8.0.tar.gz .   #.意思为,下载源码到当前目录下

RUN tar zxvf nginx-1.8.0.tar.gz

RUN mkdir -p /usr/local/nginx

RUN cd nginx-1.8.0.tar.gz && ./configure --prefix=/usr/local/nginx && make && make install

RUN rm -f /usr/local/nginx/conf/nginx.conf  #删除旧配置文件

COPY .nginx_conf /usr/local/nginx/conf/nginx.conf #复制下载的配置到目的路径

# Expose ports  #暴露80端口,因为做的是web服务器

EXPOSE 80

# Set the default command to execute

# when creating a new container

ENTRYPOINT /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf



创建镜像:

docker build -t centos_nginx . #指定镜像名称,后面的.指的是生成的镜像在当前目录下

执行后,可以看到执行的每一个步骤。

docker images 可以看到我们新建的镜像


进入容器

docker run -itd -P centos_nginx bash   #-P可以把容器80端口随机映射到宿主机一个端口上。

docker exec -it 容器ID bash    #进入容器,但是还没有启动nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  #启动nginx

curl localhost  验证容器web是否正常

退出容器,curl localhost:端口  验证容器web是否正常,随机的端口可以docker ps查看