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 [email protected] #作者信息
#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查看