您现在的位置是:首页 > 文章详情

Docker基础之十一: 镜像操作(Dockerfile)

日期:2015-12-13点击:368

Docker镜像(Dockerfile)

对Docker感兴趣的朋友可以加我的微信ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里面。

https://docs.docker.com/engine/reference/builder/

Docker可以通过Dockerfile的指令来编译Image,Dockerfile的主要好处是可以通过极少的空间来动态构建一个镜像,但是对国内用户而言,通常是比较通过的,因为下载国外的资源都比较慢。

1 Dockerfile 参考手册

1.1 如何使用

建立了Dockerfile之后,进入到所在目录,然后执行docker build.

通过-f选项,可以指定 Dockerfile:

$ docker build -f /path/to/a/Dockerfile . 

通过-t选项可以为镜像添加一个tag:

$ docker build -t shykes/myapp . 

build过程中,会一条一条的执行语句,比如:

$ docker build -t svendowideit/ambassador . Sending build context to Docker daemon 15.36 kB Step 0 : FROM alpine:3.2 ---> 31f630c65071 Step 1 : MAINTAINER SvenDowideit@home.org.au ---> Using cache ---> 2a1c91448f5f Step 2 : RUN apk update && apk add socat && rm -r /var/cache/ ---> Using cache ---> 21ed6e7fbb73 Step 3 : CMD env | grep _TCP= | sed 's/.*_PORT_\([0-9]*\)_TCP=tcp:\/\/\(.*\):\(.*\)/socat -t 100000000 TCP4-LISTEN:\1,fork,reuseaddr TCP4:\2:\3 \& wait/' | sh ---> Using cache ---> 7ea8aef582cc Successfully built 7ea8aef582cc 

1.2 Dockerfile格式

# Comment INSTRUCTION arguments 

指令是不区分大小写的,不过一般都使用大写来区分指令和参数。Dockerfile的第一句指令,必须是'FROM',这个后面紧跟的是基础镜像名称。#可以用来注释。

1.3 环境变量替换指令

环境变量指令是ENV,这个类似于编程语言的变量,只能在Dockerfile中使用。例如:

FROM busybox ENV foo /bar WORKDIR ${foo} # WORKDIR /bar ADD . $foo # ADD . /bar COPY \$foo /quux # COPY $foo /quux 

其中支持变量应用的指令包括:

ADD COPY ENV EXPOSE LABEL USER WORKDIR VOLUME STOPSIGNAL ONBUILD 

1.4 dockerignoe file

如果你的编译目录下有一些文件是不需要打包进Image的,你可以使用该文件进行过滤。重要涉及的指令是ADD和COPY。

1.5 FROM

FROM <image> 

或者

FROM <image>:<tag> 

或者

FROM <image>@<digest> 

FROM指令指定了目标Image的基础镜像。tag是某个特定版本的镜像, digest是最新引入的一种ID,类似于唯一标示符。

1.6 MAINTAINER

MAINTAINER <name> 

这个字段一目了然,就是设置作者。

1.7 RUN

RUN包含两种格式:

  • RUN (shell格式,这种命令运行在shell中 /bin/sh -c)
  • RUN ["executable", "arg1", "arg2"] (exec格式) RUN指令可以执行任何命令,并在当前image的顶层添加一个文件层,并提交到新的image中。由此我们可以看出,每一个RUN指令都会新加一层文件系统,虽然这个并不占多少空间,不过还是推荐尽可能多的减少指令。因此我们可以使用\来做换行处理。
    RUN /bin/bash -c 'source $HOME/.bashrc ;\ echo $HOME' 
    不换行形式:
    RUN /bin/bash -c 'source $HOME/.bashrc ; echo $HOME' 
    exec模式:
    RUN apt-get dist-upgrade -y
原文链接:https://yq.aliyun.com/articles/140
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章