作者:朱金燦
來源:clever101的專欄
在編寫Dockerfile時經常需要拷貝文件或文件夾的操作,這時就需要用到ADD和COPY指令。個人認爲對於拷貝文件或文件夾的操作使用ADD指令已經足夠了,完全不用使用COPY指令(網上的一種說法是COPY是一種簡化版ADD)。下面詳細介紹一下ADD指令的幾種常用操作:
一.拷貝單個文件到指定目錄
這個比較簡單,用法是:ADD 宿主機文件的全路徑 docker容器下的文件夾路徑,示例如下:
#拷貝當前目錄下的test.jar到/usr/bin目錄下
ADD ./test.jar /usr/bin/
二.拷貝特定的多個文件到指定目錄
ADD指令支持通配符,常用的示例如下:
#拷貝當前目錄下的bin文件夾的所有sh文件到/usr/bin目錄下
#拷貝當前目錄下的bin文件夾的所有sh文件到/usr/bin目錄下
ADD ./bin/*.sh /usr/bin/
#拷貝當前目錄下的bin文件夾的所有帶後綴的文件到/usr/bin目錄下
ADD ./bin/*.* /usr/bin/
#拷貝當前目錄下的bin文件夾的所有不帶後綴的文件到/usr/bin目錄下
ADD ./bin/* /usr/bin/
#拷貝當前目錄下的bin文件夾的所有文件到/usr/bin目錄下(/usr/bin目錄原有的文件會保留)
ADD ./bin/ /usr/bin/
三.拷貝文件夾到指定目錄
用法是:ADD 宿主機文件夾的全路徑 docker容器下的文件夾路徑+新文件夾名,示例如下:
#拷貝當前目錄下的config文件夾到/usr/bin目錄下
ADD ./config /usr/bin/config