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