DockerfileのADDとCOPY命令の違いは何ですか

DockerfileのADDとCOPY命令の違いは何ですか

DockerfileリファレンスでDockerイメージにファイルをコピーする2つのガイドラインを説明する理由はわかりません。持つ次へ追加そしてコピー彼らは私と非常に似ているようです。それらの間に実質的な違いはありますか?そうでない場合、最も一般的に使用されるものは何ですか?

答え1

ADDより多くの「魔法」を実行します。 URLを取得してアーカイブを解凍します。これはやや予想外のことです(特にアーカイブの解凍の場合)。あなたに推奨される公式ベストプラクティスガイドADDの追加機能が必要ない場合は、COPYを使用してください。

答え2

~によるとDockerfileの作成のベストプラクティス

ADD機能は似ていますが、COPY通常はCOPYが優先されます。に比べて良いからですADD

ADDtarファイルを抽出し、リモートURLファイルを取得できます。公式文書。また、

画像サイズが重要なので、ADDリモートURLからパッケージをインポートするのではなく、代わりに使用する必要がcurlありますwget

COPY entrypoint.sh /srv/app/
ADD app.tar /srv/app/

したがって、一般的な規則は@derobertが言及したのと同じです。排他機能がCOPY必要ない場合。ADD

関連情報