资讯专栏INFORMATION COLUMN

使用Dockerfile构建镜像

idealcn / 3225人阅读

摘要:个人理解使用来构建镜像其实是将应用部署及相关环境配置的命令集成到中,以便能统一镜像内容,与传统的部署差别在于,使用部署可以减小镜像内容的差异,方便控制。

个人理解:使用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
查看容器中的镜像是否能访问


大功告成!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26852.html

相关文章

  • 如何用Dockerfile构建镜像

    摘要:用于配置当前所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。运行构建命令构建命令用于使用创建镜像。 本文旨在用通俗的语言讲述枯燥的知识 前面讲到镜像的构建时,讲述的是用commit的方式构建镜像,而Dockerfile是另一种构建镜像的方式。 Dockerfile构建镜像是以基础镜像为基础的,Dockerfile是一个文本文件,内容是用户编写的一些docker指令,每一条...

    genefy 评论0 收藏0
  • 高效编写Dockerfile的几条准则

    摘要:本文已获得原作者授权。在构建镜像的过程中会缓存一系列中间镜像。镜像时,会顺序执行中的指令,并同时比较当前指令和其基础镜像的所有子镜像,若发现有一个子镜像也是由相同的指令生成,则命中缓存,同时可以直接使用该子镜像而避免再去重新生成了。 本文已获得原作者 CodeSheep 授权。 概述 Dockerfile 是专门用来进行自动化构建镜像的编排文件(就像 Jenkins 2.0时代的 J...

    RyanQ 评论0 收藏0
  • Docker学习之Dockerfile 构建镜像(3)

    摘要:我们可以了解到,镜像的定制实际上就是定制每一层所添加的配置文件。指令之指令的目的就是来指定基础镜像。指令之指令是用来执行命令行命令的。由于命令行的强大能力,指令在定制镜像时是最常用的指令之一。构建镜像这里我们使用了命令进行镜像构建。 我们可以了解到,镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜...

    Lavender 评论0 收藏0
  • 程序员笔记——如何编写优雅的Dockerfile

    摘要:导读要从容器化开始,而容器又需要从开始,本文将介绍如何写出一个优雅的文件。只要记住以上三点就能写出不错的。执行完成项目的构建。 导读 Kubernetes要从容器化开始,而容器又需要从Dockerfile开始,本文将介绍如何写出一个优雅的Dockerfile文件。 文章主要内容包括: Docker容器 Dockerfile 使用多阶构建 感谢公司提供大量机器资源及时间让我们可以实践...

    曹金海 评论0 收藏0
  • 高效编写Dockerfile的几条准则

    摘要:在构建镜像的过程中会缓存一系列中间镜像。镜像时,会顺序执行中的指令,并同时比较当前指令和其基础镜像的所有子镜像,若发现有一个子镜像也是由相同的指令生成,则命中缓存,同时可以直接使用该子镜像而避免再去重新生成了。 showImg(https://segmentfault.com/img/remote/1460000015606308?w=2000&h=1428); 概述 Docker...

    Alan 评论0 收藏0
  • Dockerfile多阶段构建原理和使用场景

    摘要:版本以后,新增了多阶段构建。所谓多阶段构建,实际上是允许一个中出现多个指令。因为多个指令会造成多根,则是无法实现的。会使用一个完全干净的文件系统,不包含任何文件。可以使得最后生成的镜像最小化,其中只包含了程序。 Docker 17.05版本以后,新增了Dockerfile多阶段构建。所谓多阶段构建,实际上是允许一个Dockerfile 中出现多个 FROM 指令。这样做有什么意义呢? ...

    fireflow 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<