Dockerfile 指令

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
相關文章
相關標籤/搜索