Docker -- dockerFile指令说明

Dockerfile 是一个文本格式的配置文件,用户可以使用Dockerfile来快速创建自定义镜像。


指令集的功能说明

指令说明
FROM指定所创建镜像的基础镜像
MAINTAINER指定维护者信息
RUN运行命令
CMD指定启动容器时默认执行的命令
LABEL指定生成镜像的元数据标签信息
EXPOSE声明镜像内服务所监听的端口
ENV指定环境变量
ADD赋值指定的< src > 路径下的内容到容器中的<dest>路径下,<src>可以为URL;如果为tar文件,会自动解压到<dest>路径下
COPY复制本地主机的<src>路径下的内容到镜像中的<dest>路径下;一般情况下推荐使用COPY,而不是ADD
ENTRYPOINT指定镜像的默认入口
VOLUME创建数据卷挂在点
USER指定运行容器时的用户名或UID
WORKDIR配置工作目录
ARG指定镜像内使用的参数(例如版本号信息等)
ONBUILD配置当前所创建的镜像作为其他镜像的基础镜像时,所执行的创建操作指令
STOPSIGNAL容器退出的信号值
HEALTHCHECK如何进行健康检查
SHELL指定使用shell时默认shell类型

详细介绍

  • FROM
    制定所创建镜像的基础镜像,如果本地不存在,则默认会去Docker Hub下载指定镜像。格式为FROM<image>,或FROM<image>:<tag>,或FROM<image>@<digest>
    注意:任何Dockerfile中的第一条指令必须为FROM指令,并且,如果在同一个Dockerfile中创建多个镜像,可以使用多个FROM指令(每个镜像一次)。

  • MINTAINER
    指定维护者信息,格式为MAINTAINER<name>
    eg:
    MAINTAINER houshuai0816@docker.com
    该信息会写入生成镜像的Author属性域中

  • RUN
    运行指定命令
    格式为RUN<command>RUN ["executable", "param1" , "param2"]。注意 后一个指令会被解析成Json数组。因此必须使用双引号。
    注意: 前者默认将在shell终端中运行命令,即/bin/sh -c;后者则使用exec执行,不会启动shell环境。

  • CMD
    CMD指令用来指定启动容器默认执行的命令。支持如下3种形式
    s

    1. CMD ["executable","param1","param2"]使用exec执行,是推荐使用的。
    2. CMD command param1 param2/bin/sh中执行,提供给需要交互的应用。
    3. CMD ["param1" ,"param2"]提供给ENTRYPOINT的默认参数。
      注意:每个Dodckerfile 只能有一条CMD命令,如果指定了多条命令,只有最后一条会被执行。
  • LABEL
    LABEL 指令用来指定生成镜像的元数据标签信息。
    格式为LABEL <KEY>=<VALUE> .....
    eg:
    LABEL version = "1.0"
    LABEL description = "This text illustrates ...."

  • EXPOSE
    声明镜像内服务所监听的端口。
    格式为EXPOSE <port > [<posrt> ... ]
    eg:
    EXPOSE 22 80 8443
    注意:该指令只能声明作用,并不会自动完成端口映射。

  • ENV
    指定环境变量,在镜像生成过程中会被后续RUN指令使用,在镜像启动的容器中也存在。
    格式为:ENV<key><value>ENV<key> = <value> ...

  • ADD
    该命令将复制指定的<src>路径下的内容到容器中的<dest>路径下。
    格式为:ADD<src> <dest>.

注意:其中Dockerfile所在目录的一个相对路径(文件或目录),也可以是一个URL,还可以是tar文件。支持正则表达式

  • COPY

与ADD相似,推荐使用COPY在操作本地目录为源目录时候。

  • ENTRYPOINT
    指定镜像的默认入口命令,该入口命令会在启动容器时作为根命令执行,所有传入值作为该命令的参数。
    支持两种格式:
    ENTRYPOINT ["executable" , "param1" , "param2"](exec调用执行)
    ENTRYPOINT command param1 param2(shell 执行)。**
    注意:每个Dockerfile只能有一个ENTRYPOINT,当指定多个时候,只有最后一个有效。

  • VOLUME
    创建一个数据卷挂在点。
    格式为:VOLUME ["/data"]
    可以从本地主机或其他容器挂载数据卷,一般用来存放数据库和需要保存的数据等。

  • WORKDIR
    为后续RUN,CMD和ENTRYPOINT指令配置工作目录。
    格式为:WORKDIR /path/to/workdir

  • STOPSIGNAL
    指定所创建的镜像启动的容器接受退出的信号值。
    STOPSIGNAL signal

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker是一种开源的容器化平台,它可以帮助开发者将应用程序和服务以容器的形式进行打包、分发和部署。而Gluster是一个分布式存储系统,它可以将多个服务器的存储空间整合在一起,形成一个统一的、可扩展的存储池。 CentOS是一种基于Red Hat Enterprise Linux(RHEL)的开源操作系统,它提供了稳定性和安全性,并且具备广泛的应用支持。 Dockerfile是用于构建Docker镜像的脚本文件,它可以定义容器的运行环境、设置启动命令等。 那么,docker-gluster-centos Dockerfile是指在CentOS系统上构建一个包含Gluster分布式存储系统的Docker镜像的脚本文件。 在docker-gluster-centos Dockerfile,我们可以使用CentOS的官方镜像作为基础镜像,并在此基础上安装和配置Gluster分布式存储系统。可以通过使用适当的软件包管理工具(如yum)来安装Gluster软件包和依赖项。然后,可以使用Dockerfile指令来启动和配置Gluster节点、创建Gluster卷以及设置其他必要的参数和选项。 通过构建docker-gluster-centos Docker镜像,我们可以在任何支持Docker的环境快速部署和运行Gluster分布式存储系统,而无需手动安装和配置。这样可以大大简化Gluster的部署过程,提高运维效率,并且能够实现更加轻量级、可移植和可扩展的存储解决方案。 总而言之,docker-gluster-centos Dockerfile是用于在CentOS系统上构建包含Gluster分布式存储系统的Docker镜像的脚本文件,使得Gluster的部署和运行变得更加简单、可靠和可扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值