Dockerfile基础命令

一、Dockerfile

镜像的定制实际上就是定制每一层所添加的配置和文件。
如果可以把每一层修改、安装、构建、操作的命令都写入到一个脚本,用这个脚本文件来构建、定制镜像,并且重复利用、镜像的构建透明化、体积的优化。那这个脚本称之为Dockerfile

二、为什么要使用Dockerfile

目前的仓库镜像很难找到一个满足项目需求、非常好用的镜像,就需要自定义镜像

三、Dockerfile语法

基本指令有13个,指令必须大写,分别是:
FROM
MAINTAINER
RUN
CMD
EXPOSE
ENV
ADD
COPY
ENTERPOINT
VOLUME
USER
WORKDIR
ONBUILD

3.1 FROM

用法:FROM
说明:Dockerfile第一个指令必须为FROM
其指定一个构建镜像的基础源镜像,如果本地Docker镜像没有则会从公共库中拉取pull,没有指定镜像的Tag则会使用默认的latest标签Tag,可以出现很多次,如果想在同一个Dockerfile中构建多个镜像

3.2 MAINTAINER

用法: MAINTAINER
说明:描述镜像的创建者名称和邮箱

3.3 RUN

用法:RUN“command”“param1”“param2”“…”
说明: RUN命令是执行之后会生成一个新的镜像,也可以是镜像的分层构建。一句RUN就是一个分层,也就相当于一个版本。RUN后面的都需要双引号,不能用单引号,也可以不写?yes or no.

3.4 CMD

用法:CMD[“command”,“param1”,“paran2”,"…"]
说明:CMD命令在Dockerfile中只能出现一次,如果有多次,则只有最后一次生效

3.5 EXPOSE

用法:EXPOSE port1 port2 …
说明:设置容器对外映射的容器端口号,在docker run -p的时候生效

3.6 ENV

用法:ENV
说明:1.ENV用于定义镜像的环境变量,定义环境变量的同事,可以引入已经定义的环境变量
在ENV指令中,可以直接引用如下环境变量:
HOME,用户主目录
HOSTNAME,默认容器的主机名
PATH,
TERM,默认xterm
2.由于镜像的层次文件系统,ENV定义的环境变量在后续层次中才能够被应用
3.启动容器后,在容器实例中,可以通过env命令查看环境变量

3.7 ADD

用法:ADD
说明: 复制宿主机本地文件或者目录或者远程文件,添加到指定容器目录支持正则。路径是绝对路径,不存在自动创建。如果源是一个目录只会复制目录下的内容,目录本身不会复制。ADD命令会将复制的压缩文件夹自动解压

3.8 COPY

用法:COPY
说明:src 表示源 宿主机上的源,源代表着文件或者文件目录
dest 表示 容器中的指定文件
说明:COPY除了不能自动解压,也不能复制网落文件。其他功能和ADD相同。

3.9 ENTRYOPINT

用法:ENTRYOPINT “command” “param1”“…”
说明: 和CMD一样,唯一的区别是不能被docker run命令的执行命令覆盖,如果想覆盖则需要带上 --entrypoint,如果是多项则最后一个有效

3.10 VOLUME

用法:VOLUME【“path”】
说明: 在宿主机上创建一个挂载,挂载到容器的指定路径,docker run -v命令也能实现挂载,而且更强大。这个命令不能指定宿主机的需要挂载到容器的文件目录的路径,但是docker -v可以,而且docker -v也可以挂载数据容器

3.11 USER

用法:USER
说明:USER指令用于指定容器执行程序的用户身份,默认是root用户。在docker run中可以通过 -u选项覆盖USER指令的设置
注意:docker容器中的root用户密码是随机分配的

3.12 WORKDIR

用法:WORKDIR path
说明:为RUN、COPY、ENTRYPOINT指定配置工作目录。可以使用多个WORKDIR后续参数如果是相对路径,则会基于之前的命令指定的路径。比如: WOPKDIR/Home WORKDIR test 最终的路径为/Home/test
如果设置对了环境变量 例如当前的环境变量 HOME =/home
则 WORKDIR $HOME /test 也是/home/test

3.13 ONBUILD

用法:ONBUILD COPY
说明:镜像触发器,当一个镜像被其他镜像作为基础镜像是执行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值