docker file

docker file根据file当中的指令创建出一个新的容器,跟ansible中的role大致一样。

构建docker file时,必须有一个工作目录,而且这个目录中不要存在任何文件,除了docker file。docker file文件的名字必须叫docker file。

docker file中的每一条指令都会重新生成一个新的镜像层。

docker file由众多的指令组成,它的格式虽说不分大小写,但是约定俗成都使用大写。

FROM指令
使用哪个镜像,在新版中,它可以不放在第一条,但是老版本中,它必须放在头一条
语法:FROM <repository>[<tag>]
<repository>:指定镜像名称
tag:镜像标签

示例:

FROM centos:7

LABEL指令
用于给镜像打标签
语法:LABEL < key>=< value> < key>=< value> …
各个标签之间用空格隔开

COPY
用于从docker主机复制文件致创建的新映像文件
语法:COPY <src>…<dest>
src:要复制的源文件或目录
dest:目标路径,即正在创建image的文件路径系统,建议使用绝对路径,否则,copy指定则以WORKDIR为其起始路径。
注意:
src必须是build上下文中的路径,不能是父目录中的文件
如果src是目录,则内部的文件或子文件都会地柜复制,但是src目录本身不会复制
如果指定了多个src,或在src中使用了通配符,则dest必须是一个目录,且必须以/结尾
如果dest不存在,它会自动创建,这包括其父目录。

示例:

[root@localhost docker]# cat work_dir/Dockerfile 
FROM busybox


COPY index.html /tmp/

COPY test1 /data/test1/

COPY a* /tmp/

ADD指令
ADD类似于COPY命令,但是支持tar文件和URL路径文件
语法: ADD <src> … <dest> 或ADD ["<src>",… “<dest>”]
如果src是url路径。dest不以/结尾,则src指定的文件将被直接下载并且改名为dest,如果dest以/结尾,则文件下载到dest目录下
如果src是一个tar文件,它将会直接解压成一个目录,但是通过URL制定下载的不会解压。

示例:

ADD nginx-1.19.0.tar.gz  /tmp/
ADD http://nginx.org/download/nginx-1.18.0.tar.gz  /tmp/
#ADD指令不支持https认证,如果想使用https下载,建议使用RUN指令

WORKDIR
用于为Dockerfile中所有的RUN,CMD,ENTRYPOINT ,COPY 和ADD指定工作目录
语法:WORKDIR <dirpath>
在dockerfile中WORKDIR指令可以出现多个,可以使用相对路径,但是相对路径是相对于上一个WORKDIR来说的。

示例:

WORKDIR /data/ydong

ADD nginx-1.19.0.tar.gz ./

WORKDIR html   # 它的父目录是/data/ydong,容器进入后的工作目录再/data/ydong/html

ADD index.html ./

VOLUME
用于在image中创建一个挂载点目录,以挂载docker hosts上的卷或者其它容器上的卷

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值