CMDweb
这个指令有点像RUN,可是run指令是指定镜像被构建时要运行的命令,CMD是指定容器被启动时要运行的命令。docker
注意: 使用docker run 命令能够覆盖CMD指令。app
ENTRYPOINTwebapp
这个指令与CMD指令很是相似,可是这个指令不容易在启动容器时被覆盖。实际上docker run命令行中指定的任何参数都会被看成参数再次传递给ENTRYPOINT指令中指定的命令。spa
WORKDIR命令行
这个指令用来在从镜像建立一个新容器时,在容器内部设置一个工做目录,让后面的指令在这个目录下运行。code
WORKDIR /opt/webapp/db RUN bundle install WORKDIR /opt/webapp ENTRYPOINT ["rackup"]
这里咱们将工做目录切换为/opt/webapp/db后运行了bundle install命令。又将工做目录切换到/opt/webapp,最后设置了ENTRYPOINT指令来启动rackup。blog
ENVclass
用来在镜像构建过程当中设置环境变量容器
设置环境变量
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