Dockerfile基础分享

 更新时间:2017年01月13日 08:45:51   作者:Crazy_Coder  
在Docker中,构建一个自定义镜像共有两种方法,一是通过commit指令构建,二是通过Dockerfile文件构建。今天我们主要来详细探讨下Dockerfile的一些基础。

关键字

Dockerfile中以#开头的行全为注释行

FROM <image>:<tag>

指定基础镜像

MAINTAINER <name>

指定维护者信息

RUN <command> 或 RUN ["executable file", "parameter1", ...]

在当前镜像中执行指定命令,执行的结果会被镜像保存

CMD 用法类似于RUN,用于指定Docker容器启动时执行的命令。Dockerfile中只能有一个CMD,并且此CMD命令会被启动

Docker容器时指定的参数覆盖

LABEL <key>=<value> <key>=<value>

为Docker镜像指定meta信息,同时会覆盖基础镜像中的meta信息

EXPOSE <port> <port> ....

指定暴露的端口号

ENV <key>=<value> 或者 ENV <key> <value>

指定镜像的*环境变量*,会被镜像保存下来

ADD <src> <des>

拷贝主机的文件或者目录到镜像中。此命令会**自动解压tar文件**

COPY <src> <des> 和ADD命令类似,但此命令不会自动解压tar文件

ENTRYPOINT <command> 或 ENTRYPOINT ["executable file", "parameter1", ...]

配置容器启动后启动的命令,类似`CMD`,但此命令**不会被启动Docker容器时指定的参数覆盖**

VOLUME ["/data/"]

指定一个可以从主机或者其他容器挂载的**挂载点**

USER username

指定后续操作所用的**用户名**

WORKDIR <dir path>

为后续操作指定工作目录

ONBUILD <command>

指定当此镜像作为基础镜像时指定的命令,会在`FROM`之后执行

相关文章

  • 删除docker images中为none的镜像操作

    删除docker images中为none的镜像操作

    这篇文章主要介绍了删除docker images中为none的镜像操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker 教程之私有仓库详解

    Docker 教程之私有仓库详解

    这篇文章主要介绍了Docker 教程之私有仓库详解的相关资料,需要的朋友可以参考下
    2016-12-12
  • docker-compose使用中遇到的坑及解决

    docker-compose使用中遇到的坑及解决

    这篇文章主要介绍了docker-compose使用中遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 利用Dockerfile制作个人的镜像文件详细讲解

    利用Dockerfile制作个人的镜像文件详细讲解

    Docker是一个开源的应用容器引擎,Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本,本文将给大家详细介绍如何利用Dockerfile制作个人的镜像文件,感兴趣的同学可以借鉴参考
    2023-06-06
  • Docker实现同Ip网段联通的实现

    Docker实现同Ip网段联通的实现

    这篇文章主要介绍了Docker实现同Ip网段联通的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Mac上将brew安装的MySql改用Docker执行操作过程

    Mac上将brew安装的MySql改用Docker执行操作过程

    本文分步骤给大家介绍Mac上将brew安装的MySql改用Docker执行操作过程的知识,本文给大家介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11
  • Docker如何快速搭建LNMP环境(最新)

    Docker如何快速搭建LNMP环境(最新)

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。本文给大家分享机器学习的基础知识,docker搭建lnmp环境的步骤,感兴趣的朋友一起看看吧
    2021-06-06
  • docker上部署MySQL的示例

    docker上部署MySQL的示例

    这篇文章主要介绍了docker上部署MySQL的示例,帮助大家更好的理解和学习使用docker,感兴趣的朋友可以了解下
    2021-04-04
  • Docker安装RabbitMQ的超详细步骤

    Docker安装RabbitMQ的超详细步骤

    RabbitMQ是一套开源的消息队列服务软件,是由LShift提供的一个 Advanced Message Queuing Protocol的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,这篇文章主要给大家介绍了关于Docker安装RabbitMQ的超详细步骤,需要的朋友可以参考下
    2022-08-08
  • 如何使用docker搭建upload-labs

    如何使用docker搭建upload-labs

    upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场,旨在帮助大家对上传漏洞有一个全面的了解,本文给大家介绍使用 Docker 搭建 upload-labs 的步骤,感兴趣的朋友一起看看吧
    2024-03-03

最新评论