Docker Dockerfile
Dockerfile是一個包含用於組合映像的命令的文本文檔。可以使用在命令行中調用任何命令。 Docker通過讀取Dockerfile
中的指令自動生成映像。
docker build
命令用於從Dockerfile構建映像。可以在docker build
命令中使用-f
標誌指向文件系統中任何位置的Dockerfile。
$ docker build -f /path/to/a/Dockerfile
Dockerfile文件說明
說明不區分大小寫,但必須遵循建議使用大寫字母的約定。
Docker以從上到下的順序運行Dockerfile的指令。爲了指定基本映像,第一條指令必須是FROM。
一個聲明以#
字符開頭則被視爲註釋。可以在Docker文件中使用RUN
,CMD
,FROM
,EXPOSE
,ENV
等指令。
在這裏列出了一些常用的說明。
FROM
該指令用於設置後續指令的基本映像。有效的Dockerfile必須使用FROM
作爲其第一條指令。
FROM ubuntu
LABEL
可以爲映像添加標籤來組織項目的映像。需要使用LABEL指令設置映像的標籤。
LABEL vendorl = "YiiBai"
RUN
該指令用於執行當前映像的任何命令。
RUN /bin/bash -c 'source $HOME/.bashrc; echo $HOME'
CMD
這用於執行映像的應用程序。應該以下列形式總是使用CMD -
CMD ["executable", "param1", "param2"?]
這是使用CMD的首選方法。Dockerfile文件中只能有一個CMD。如果使用多個CMD,則只會執行最後一個CMD。
COPY
該指令用於將來自源的新文件或目錄複製到目的地的容器的文件系統。
COPY abc/ /xyz
規則
source
路徑必須在構建的上下文之內。無法使用COPY ../something /something
,因爲docker構建的第一步是將上下文目錄(和子目錄)發送到docker守護程序。如果
source
是目錄,則會複製目錄的全部內容,包括文件系統元數據。
WORKDIR
WORKDIR用於爲Dockerfile中的RUN
,CMD
和COPY
指令設置工作目錄。如果工作目錄不存在,它默認將會創建。
我們可以在Dockerfile文件中多次使用WORKDIR
。