美文网首页
Dockerfile指令

Dockerfile指令

作者: Al_不期而遇 | 来源:发表于2019-03-12 11:12 被阅读0次

CMD、ENTRYPOINT、ADD、COPY、VOLUME、WORKDIR、USER、ONBUILD、ENV

CMD指令用于指定一个容器启动时要运行的命令(类似于RUN)

docker  run -it tlh/static_web /bin/true

CMD ["/bin/true"]

CMD ["/bin/bash","-l"]

要运行的命令要放在一个数组结构中,这将告诉docker按指定的原样来运行该命令。当然也可以不使用数组儿时指定CMD,这个时候docker 会在指定的命令前加上bin/sh -c

最后需要牢记docker run 命令会可以覆盖CMD指令。

ENTRYPOINT这个命令则不容易在启动容器时被覆盖,实际上docker run 命令行中指定的任何参数都会被当做参数再次传递给ENTRYPOINT指令中指定的命令。

WORKDIR 指令用来在从镜像创建一个新容器时,在容器内部设置一个工作目录,ENTRYPOINT和或CMD指定的程序会在这个目录下执行

docker run -it -w /var/log ubuntu (-w可以指定运行时覆盖工作目录)

ENV 用来在镜像构建过程中设置环境变量。

ENV RVM_PATH /home/rvm/

USER指令用来指定该镜像会以什么样的用户去运行。

USER nginx我们还可以指定UID、GID

USER user

USER user:group

USER uid:gid

USER user:gid

USER uid:group

也可以在docker run 使用-u来指定运行的用户,默认是root用户

VOLUME 指令用来向基于镜像创建的容器添加卷。一个卷是可以存在于一个或者多个容器内的特定的目录,这个目录可以绕过联合文件系统,并提供如下共享数据或者对数据进行持久化的功能。

卷可以在容器间共享和重用

一个容器可以不是必须和其他容器共享卷

对卷的修改是立时生效的

对卷的修改不会对更新镜像产生影响

卷会一直存在直到没有任何容器使用它。

卷功能让我们可以将数据、数据库或者其他内容添加到镜像中而不是将这些内容提交到镜像中,并且运行我们在多个荣期间共享这些内容。

ADD指令用来构建环境下的文件和目录复制到镜像中。比如在安装一个应用程序时。ADD指令需要源文件位置和目的文件位置两个参数

指向源文件的位置参数可以是一个URL或者构建上下文或者环境中文件名或者目录。不能对构建目录或者上下文之外的文件进行ADD操作。

如果这个目的位置不存在,docker会给我们创建一个全路径,而且新增的文件和目录权限都是0755 并且UID和GID都是0

COPY 类型ADD,不同之处copy只关心在构建上下文复制本地文件,而不会去做文件提取和解压的工作。

源文件路径必须是在一个与当前构建环境相对的文件或者目录,本地文件都放在和Dockerfile同一个目录下。

ONBUILD 指令能为镜像添加触发器。当一个镜像被用作其他镜像的基础镜像时(比如你的镜像需要从某未准备好的位置添加源代码,或者你需要执行特定于构建镜像的环境的构建脚本)该镜像中的触发器将会被执行。

仅供参考

相关文章

  • 使用dockerfile构建自己的镜像

    一、什么是dockerfile 二、Dockerfile基础指令 二、Dockerfile运行指令

  • Dockerfile使用

    Dockerfile 使用 Dockerfile 定义镜像,将指令进行保存,每条指令代表着一层构建操作,依赖指令创...

  • Dockerfile最佳实践

    Dockerfile 简介 Docker通过读取Dockerfile文件中的指令自动构建镜像。Dockerfile...

  • dockerfile

    在dockerfile dockerfile常用指令 FROM 指定base镜像MA...

  • docker-基础命令和使用案例

    Docker基础命令 Dockerfile指令 编写Dockerfile原则 1.减少镜像层:一次RUN指令形成新...

  • Dockerfile 参考手册(三):指令介绍

    博客原文 接着上一篇《Dockerfile 参考手册(二):指令介绍》继续介绍Dockerfile相关指令。文档是...

  • Dockerfile指令

    1、FROM第一条指令必须为FROM指令,并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个FR...

  • Dockerfile指令

    Dockerfile文件中,除了有FROM指令和RUN指令外,还有几个比较常用的指令 1、 COTY 复制文件 格...

  • Dockerfile指令

    CMD:用于指定一个容器启动时要运行的命令 注意:a.docker run命令可以覆盖CMD命令;b.在docke...

  • Dockerfile 指令

    学习完整课程请移步 互联网 Java 全栈工程师 我们已经介绍了 FROM,RUN,还提及了 COPY, ADD,...

网友评论

      本文标题:Dockerfile指令

      本文链接:https://www.haomeiwen.com/subject/xnjgpqtx.html