个人理解:使用Dockerfile来构建镜像其实是将应用部署及相关环境配置的命令集成到Dockerfile中,以便能统一镜像内容,与传统的部署差别在于,使用Dockerfile部署可以减小镜像内容的差异,方便控制。
先说明Dockerfile中包含哪些内容:
基础镜像信息
维护者信息
镜像操作指令
容器启动时执行指令
准备环境
#mkdir -p /opt/docker-file/nginx
#cd /opt/docker-file/nginx
#vim Dockerfile
Dockerfile内容
[lileikf2016@instance-1 nginx]$ cat Dockerfile
#This is my docker file about nginx
#Version: 1.0.0
#This is my docker file about nginx
#Version: 1.0.0
#Author: Profeel Wang
#Base image
FROM centos
#Maintainer
MAINTAINER Profeel Wang cqupt_wq@hotmail.com
#Add files
ADD pcre-8.37.tar.gz /usr/local/src
ADD nginx-1.11.13.tar.gz /usr/local/src
#RUN
RUN yum install -y wget gcc gcc-c++ make openssl-devel
RUN useradd -s /sbin/nologin -M www
#WORKDIR
WORKDIR /usr/local/src/nginx-1.11.13
#RUN
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.37 && make && make install
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
ENV PATH /usr/local/nginx/sbin:$PATH
#Expose Port
EXPOSE 80
#Run the application
CMD ["nginx"]
启动镜像
sudo docker build -t nginx-file:v1 .
查看构建的镜像
[lileikf2016@instance-docker nginx]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx-file v1 cbb545419976 15 minutes ago 394.9 MB
docker.io/centos latest a8493f5f50ff 11 days ago 192.5 MB
根据构建的镜像创建容器
sudo docker run -d -p 80:80 nginx-file:v1
查看容器中的镜像是否能访问
大功告成!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。