Dockerfile镜像的构建

Dockerfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组恒,每天指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取的Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,他明确的表明image是怎么产
摘要由CSDN通过智能技术生成

Dockerfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组恒,每天指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取的Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,他明确的表明image是怎么产生的,有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。

 

Dockerfile由一行行命令语句组成,建议使用大写,并且支持以#开头的注释行。

Dockerfile的指令是忽略大小写的,建议使用大写,每一行只支持一条指令,每条指令可以携带多个参数。

Dockerfile的指令根据作用可以分为两种:构建指令和设置指令。

构建指令用于构建image,其指定的操作不会再运行image的容器上执行。

设置指令用于设置image的属性,其指定的操作将在运行image的容器中执行。

一般的,Dockerfile分为四部分:基础镜像信息,维护者信息,镜像操作指令和容器启动时执行指令。

下面是一个例子:

#This dockerfile uses the ubuntu image

#VERSION 2 - EDITION 1

#Author:docker_user

#Command format:Instruction [arguments / command] ..

#Base image to use,this must be set as the first line

#第一行必须指明基于的基础镜像

FROM ubuntu

#Maintainer:docker_user<docker_user at email.com>(@docker_user)

#维护该镜像的用户信息

MAINTAINER docker_user docker_user@email.com

#Commands to update the image

#镜像操作命令

RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe" >>/etc/apt/sources.list

RUN apt-get update && apt-get install -y nginx

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

#开启80端口

EXPOSE 80

#Commands when createing a new container

#启动容器时执行的命令

CMD /usr/sbin/nginx

在编写dockerfile时,有严格的格式要遵循:

其中,一开始必须使用FROM指令指明基于的镜像名称,接下来使用MAINTAINER指令说明维护者信息。后面则是镜像操作指令,例如RUN指令,RUN指令将对镜像执行跟随命令。每运行一条RUN指令,都会给基础镜像添加新的一层并提交。最后是CMD指令,来指定运行容器时的操作命令。

 

dockerfile指令

指令的一般格式为INSTRUCTION(指令) arguments(参数),指令包括FROM、MAINTAINER、RUN等。

 

(1)FROM(指定基础image)

构建指令,必须指定且需要在爱Dockerfile其他指令的前面。后续的指令都依赖于该指令指定的image。FROM指令指定的基础image可以是官方远程仓库中的,也可以位于本地仓库。

该指令有两种格式:

FROM <image>

指定基础image为该image的最后修改的版本。

或者:

FROM <image>:<tag>

指定基础image为该image的一个tag版本。

 

(2)MAINTAINER(用来指定镜像创建者信息)

构建指令,用于将image的制作者相关的信息写入到image中。当我们对该image执行dockerinspect命令时,输出中有相应的字段记录该信息。

格式:

MAINTAINER <name>

 

(3)RUN(安装软件用)

构建指令,RUN可以运行任何被基础image支持的命令。如基础image选择了ubuntu,那么软件管理部分只能使用ubuntu的命令。

该指令有两种格式:

RUN <command> (the command is run in a shell - `/bin/sh -c`)

RUN ["executable","param1","param2" ...] (exec from)

前者将在shell终端中运行命令,即/bin/sh -c;后者则使用exec执行。

指定使用其他终端可以通过第二种方式实现,例如RUN ["/bin/bash","-c",&

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值