• Dockerfile 指令


    CMD

    这个指令有点像RUN,但是run指令是指定镜像被构建时要运行的命令,CMD是指定容器被启动时要运行的命令。

    注意: 使用docker run 命令可以覆盖CMD指令。

    ENTRYPOINT

    这个指令与CMD指令非常类似,但是这个指令不容易在启动容器时被覆盖。实际上docker run命令行中指定的任何参数都会被当作参数再次传递给ENTRYPOINT指令中指定的命令。

    WORKDIR

    这个指令用来在从镜像创建一个新容器时,在容器内部设置一个工作目录,让后面的指令在这个目录下运行。

    WORKDIR /opt/webapp/db
    RUN bundle install
    WORKDIR /opt/webapp
    ENTRYPOINT ["rackup"]

    这里我们将工作目录切换为/opt/webapp/db后运行了bundle install命令。又将工作目录切换到/opt/webapp,最后设置了ENTRYPOINT指令来启动rackup。

    ENV

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

    设置环境变量

    ENV RVM_PATH /home/rvm/

    这个新的环境变量可以在后续的任何RUN指令中使用。

    RUN gem install unicorn

    这个指令会以下面的方式运行

    RVM_PATH=/home/rvm/ gem install unicorn

    指定多个环境变量

     ENV RVM_PATH=/home/rvm RVM_ARCHFLAGS="-arch i386"

    在Dockerfile指令中使用环境变量

    ENV TARGET_DIR /opt/app
    WORKDIR $TARGET_DIR

    VOLUME 

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

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

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

    对卷的修改是立时生效的。

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

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

    docker cp是和volume指令相关并且也是很实用的命令。该命令允许从容器复制文件和复制文件到容器上。

    ADD

    用来将构建环境下的文件和目录复制到镜像中。这个意思就是可以把主机上的文件复制到容器中。

    注意: 不能对构建目录或者上下文之外的文件进行ADD操作。

    删除镜像

    sudo docker rmi lmy/static_web
  • 相关阅读:
    tp6.0使用EasyWeChat
    vue-admin-template使用
    tp6.0入门
    seo一些细节
    wordpress开发mac
    php加密
    小程序信息授权sessionKey失效问题
    app爬虫(python)开发——抓包工具的使用详细笔记
    app爬虫(python)开发——搭建开发环境(如何抓取app数据?)
    app爬虫(python)开发入门到实战个人笔记(目录)
  • 原文地址:https://www.cnblogs.com/liumy/p/11240960.html
Copyright © 2020-2023  润新知