1. 程式人生 > >Dockerfile 指令 ADD 和 COPY介紹

Dockerfile 指令 ADD 和 COPY介紹

一、ADD指令

ADD指令的功能是將主機構建環境(上下文)目錄中的檔案和目錄、以及一個URL標記的檔案 拷貝到映象中。

其格式是: ADD  源路徑  目標路徑

如:

#test
FROM ubuntu
MAINTAINER hello
ADD test1.txt test1.txt
ADD test1.txt test1.txt.bak
ADD test1.txt /mydir/
ADD data1  data1
ADD data2  data2
ADD zip.tar /myzip

  

有如下注意事項:

1、如果源路徑是個檔案,且目標路徑是以 / 結尾, 則docker會把目標路徑當作一個目錄,會把原始檔拷貝到該目錄下。

如果目標路徑不存在,則會自動建立目標路徑。

2、如果源路徑是個檔案,且目標路徑是不是以 / 結尾,則docker會把目標路徑當作一個檔案。

如果目標路徑不存在,會以目標路徑為名建立一個檔案,內容同源檔案;

如果目標檔案是個存在的檔案,會用原始檔覆蓋它,當然只是內容覆蓋,檔名還是目標檔名。

如果目標檔案實際是個存在的目錄,則會原始檔拷貝到該目錄下。 注意,這種情況下,最好顯示的以 / 結尾,以避免混淆。

3、如果源路徑是個目錄,且目標路徑不存在,則docker會自動以目標路徑建立一個目錄,把源路徑目錄下的檔案拷貝進來。

如果目標路徑是個已經存在的目錄,則docker會把源路徑目錄下的檔案拷貝到該目錄下。

4、如果原始檔是個歸檔檔案(壓縮檔案),則docker會自動幫解壓。

 

二、COPY指令

COPY指令和ADD指令功能和使用方式類似。只是COPY指令不會做自動解壓工作。

 

例項:

COPY deploy_files /usr/local/tomcat/deploy_files

移動整個目錄  如果源路徑是個目錄,且目標路徑不存在,則docker會自動以目標路徑建立一個目錄,把源路徑目錄下的檔案拷貝進來。