天天看點

Dockerfile 常用指令

Dockerfile 常用指令:

1) FROM  : FROM 鏡像指令指明了目前鏡像繼承的基鏡像,編譯目前鏡像時會自動下載下傳基鏡像 ,如果不指定映像url 則從docker hub 上擷取。 e.g : FROM ubuntu 

2) MAINTAINER :MAINTAINER 指令 指定了目前鏡像的作者及聯系方式。e.g : MAINTAINER: caiqiufang

3)RUN : RUN 指令可以在目前鏡像上執行Linux  指令并形成一個新的層,RUN 是編譯時(build) 的動作,在docker 指令中運作的shell 指令,等價于docker run <image> <command> 示例可以是如下兩種,CMD 和 ENTRYPOINT也是如此 e.g : RUN /bin/bash -c "echo helloworld"    or   RUN {"/bin/bash", "-c" ,"echo helloworld"}

4) CMD : CMD 指令指明了啟動鏡像容器時的預設行為(docker 容器運作時的預設指令),一個Dockerfile 裡隻有一個CMD 指令,CMD 指令裡設定的指令可以在運作鏡像時使用參數覆寫,CMD 是 運作時(run)的動作。 e.g :  CMD echo "this is a test"  正如上所說可以被運作時的參數覆寫,如下: docker  run -d imag_name echo "this is not a test"。

5)EXPOSE : 指明了鏡像運作時的容器必須監聽的端口  e.g : EXPOSE 8080

6) ENV : 用來設定環境變量  e.g :  ENV myname = caiqiufang   or ENV myname  caiqiufang。

7) ADD : ADD 指令是指從目前工作目錄複制檔案到鏡像目錄中去。 e.g : ADD test.txt   /mydir/

8) ENTRYPOINT : ENTRYPOINT 指令可以讓容器像一個可執行程式一樣運作,這樣鏡像運作時可以像軟體一樣 接收參數執行。ENTRYPOINT 是運作(run)時的動作  e.g : ENTRYPOINT {"/bin/echo"}  ,那麼我們可以向鏡像傳遞參數運作 docker run  -d image_name  "this is a test"

9) WORKDIR <path>: 指定RUN, CMD, ENTRYPOINT  等指令運作的工作路徑