dockerfile指令汇总

dockerfile指令汇总

1.cmd
    指定一个容器启动时可用的指令或指令和参数。
    cmd ["/bin/true"]
    cmd["/bin/bash","-l"]
    注意:docker run会覆盖cmd命令;深刻理解cmd和entrypoint之间的相互作用也是十分重要的;容器里只能指定一条cmd指令,如果需要启动容器的时候运行多个进程或者命令,考虑使用supervisor服务管理工具。
2.entrypoint
    docker run执行的指令不会覆盖,且docker run命令行中的参数会被当做参数再次传递给entrypoint指令。
    ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
    CMD ["-H"]
    注意:docker run --entrypoint标志覆盖ENTRYPONIT指令
3.WORKDIR
    从镜像中创建一个容器,在容器内部设置一个工作目录,ENTRYPOINT,CMD指令会在这个目录下执行。
    WORKDIR /opt/apps/db
    RUN bundle install
    注意:可以使用 docker run -w /workdir 覆盖工作目录
4.ENV
    用来在构建过程中设置环境变量
    ENV RVM_PATH /home/rvm/
    ENV TARGET_DIR /opt/app
    WORDIR $TARGET_DIR

    docker -e 标志可以传递环境变量,这些变量将只会在运行时有效
5.user
    指定启动容器的用户,uid,user或者和gid,group组合。
    docker run -u可以覆盖改指令
6.VOLUME
    向容器添加卷。一个卷可以存在一个或者多个容器内的特定目录中。
    卷的特点:
        卷可以在容器之间共享和重用
        一个容器可以自私地占用某个卷
        卷的修改是即时生效
        对卷的修改不会对更新镜像产生影响
        卷会一直存在直到没有容器使用它

        VOLUME ["/opt/project","/data"]

    提示:docker cp是和volume指令相关并且也是很实用的命令。该命令可以从容器中复制文件,也可以复制文件到容器上。

7.add
    add指令用来将构建环境下的文件和目录复制到镜像中。  

    ADD software.lic /opt/application/software.lib
    将构建目录下的software.lic文件复制到容器/opt/application/software.lic
    构建的源文件可以是url或者是构建上下文或环境中文名或者目录
    目的地址以"/"字符来判断文件源是目录还是文件

    ADD latest.tar.gz /var/www/wordprss/
    如果源端存在压缩文件,会自动压缩到目的端

    注意:ADD指令会使得构建缓存变得无效。

8.COPY
    COPY只关心构建上下文中复制本地文件,而不去做提取和解压工作。
    本地文件都放到与Dockerfile同一个目录下,不能放在改目录的之外的仁和目录。
    目标目录必须是绝对路径
    COPY conf.d/ /etc/apache2/
    在这个例子中源文件是以"/"结尾,所以docker会认为它是目录,并将它复制到目的目录中。,如果目的目录不存在,docker会创建所需要的目录结构。
9.LABEL
    label指令用于为docker镜像添加元数据。元数据一键值对的形式展现。
    LABEL version="1.0"
    LABEL location="Los Angeles" type="Date Center" role="Web Server"
10.STOPSIGNAL
    stopsignal指令用来设置停止容器时发送什么系统调用信号给容器。这个信号必须是内核系统调用表中合法的值。
11.ARG
    arg指令用来docker build命令运行时传递参数,我们只需要在构建时使用--build-arg标志即可。但是有个前提条件,用户在构建过程中只能使用在dockerfile定义过的参数。
    ARG build
    ARG webapp_user=nginx

    docker build --build-arg build=1234 huwho/webapp
12.ONBUILD
    onbuild指令能为镜像添加触发器。当一个镜像被用作其他镜像的基础镜像时(比如用户镜像需要从某未准备好的位置添加源代码,或者用户需要执行特定于构建镜像的环境的构建脚本),改镜像中的触发器将会被执行。
    触发器会在构建过程中添加指令。
    ONBUILD ADD . /app/src
    ONBUILD RUN cd /app/src && make 

原文地址:http://blog.51cto.com/huwho/2135125

时间: 2024-12-11 23:20:19

dockerfile指令汇总的相关文章

Dockerfile 指令汇总及解析

原文地址:http://www.maoyupeng.com/dockerfile-command-introduction.html 什么是Dockerfile Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像.它们简化了从头到尾的流程并极大的简化了部署工作.Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数.其产出为一个新的可以用于创建容器的镜像. 当你在使用 Docker构建镜像的时候,每一个命令都会在前一个命令的基础上形

dockerfile指令介绍

DOCKERFILE指令:CMD,ENTRYPOINT,ADD,COPY,VOLUME,WORKDIR,USER,ONBUILD,ENV等 1.CMD:用于指定一个容器启动时要运行的命令.类似于RUN指令,只是RUN指令是指定镜像被构建时的命令,而CMD是指容器被启动时要运行的命令 docker run -i -t zhoufujin/apache  /bin/true 和  CMD ["/bin/true"] 等效 这里需要注意:使用docker run命令可以覆盖CMD指令.如果我

gSoap工具wsdl2h及soapcpp2指令汇总

gSoap开发包的下载地址http://sourceforge.net/projects/gsoap2,在bin目录下提供了两个工具: 1:wsdl2h:The gSOAP wsdl2h tool imports one or more WSDLs and XML schemas and generates a gSOAP header le with familiar C/C++ syntax to define the Web service operations and the C/C++

Docker基本命令与使用 —— Dockerfile指令与构建(三)

一.Dockerfile指令上 1.指令格式 # Comment 注释, 以#开头 INSTRUCTION argument 以大写的指令+参数 #First Dockerfile 注释 FROM ubuntu:14.04 MAINTAINER dormancypress "[email protected]" RUN apt-get update RUN apt-get install -y nginx EXPOSE 80 From MAINTAINER RUN EXPOSE FRO

Linux常用到的指令汇总

Linux常用到的指令汇总 根据鸟哥linux私房菜上定义的:一定要先學會的指令:ls, more, cd, pwd, rpm, ifconfig, find 登入與登出(開機與關機):telnet, login, exit, shoudown, reboot Linux 多人多工與背景執行功能:& 與 [ctrl]+[z], fg, ps, kill 檔案與目錄管理:cd, pwd, ls, cat, more, mkdir, rm, rmdir, mv, cp, ln, find, wher

docker学习笔记17:Dockerfile 指令 ONBUILD介绍

ONBUILD指令可以为镜像添加触发器.其参数是任意一个Dockerfile 指令. 当我们在一个Dockerfile文件中加上ONBUILD指令,该指令对利用该Dockerfile构建镜像(比如为A镜像)不会产生实质性影响. 但是当我们编写一个新的Dockerfile文件来基于A镜像构建一个镜像(比如为B镜像)时,这时构造A镜像的Dockerfile文件中的ONBUILD指令就生效了,在构建B镜像的过程中,首先会执行ONBUILD指令指定的指令,然后才会执行其它指令. 需要注意的是,如果是再利

Dockerfile 指令

FROM 格式为 FROM <image>或FROM <image>:<tag> 第一条指令必须为 FROM 指令.并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个 FROM 指令(每个镜像一次) MAINTAINER 格式为 MAINTAINER <name>,指定维护者信息 RUN 格式为 RUN <command> 或 RUN ["executable", "param1", &q

Memcache存储机制与指令汇总

1.memcache基本简介 memcached是高性能的分布式内存缓存服务器.一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性. Memcache的运行图: Memcache的特征 memcached作为高速运行的分布式缓存服务器,具有以下的特点. 1.基于C/S架构协议简单 memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议. 因此,通过telnet也能在memcached上保存数据.取得数据.

Docker Dockerfile 指令

Dockerfile 指令 CMD CMD指令用于指定一个容器启动时要运行的命令.这有点儿类似于RUN指令,只是RUN指令是指定镜像被构建时要运行的命令,而CMD是指定容器被启动时要运行的命令.这和使用docker run命令启动容器时指定要运行的命令非常类似 $ sudo docker run -i -t jamtur01/static_web /bin/true 可以认为上述命令和在Dockerfile中使用如下的CMD 指令是等效的. CMD ["/bin/true"] 选项和命