Встречается на собеседованиях • сегодня

Чем отличает COPY от ADD

Команды COPY и ADD - это две инструкции, используемые в Dockerfile для копирования файлов и папок из исходной директории хост-системы в образ Docker. Они выполняют схожую функцию, но есть несколько ключевых различий:

  1. Функциональность:

    • COPY: Команда COPY просто копирует файлы и папки из исходной директории на хост-системе в указанное место в образе Docker. Она предназначена для базовой операции копирования файлов.

    • ADD: Команда ADD также копирует файлы и папки из исходной директории, но также может выполнять дополнительные действия, такие как извлечение файлов из архивов (например, .tar) и загрузку файлов из URL. Это более мощная команда, которая может выполнять дополнительные операции.

  2. Инструкции в Dockerfile:

    • COPY: Инструкция COPY имеет простой синтаксис и обычно выглядит следующим образом: COPY <source> <destination>, где <source> - это исходный файл или директория на хост-системе, а <destination> - место, куда файлы или папки будут скопированы в образе.

    • ADD: Инструкция ADD также имеет синтаксис ADD <source> <destination>, но она добавляет дополнительную функциональность для обработки URL и архивов. Это может быть полезным, например, для автоматической загрузки и разархивирования файлов из интернета.

  3. Кеширование:

    • COPY: Команда COPY более подходит для случаев, когда вы хотите убедиться, что слои образа могут быть легко кешированы, поскольку она выполняет простую операцию копирования файлов. Это может способствовать более быстрой сборке образов при использовании кеширования.

    • ADD: Инструкция ADD, особенно при использовании для извлечения файлов из архивов, может создавать слои образа, которые сложнее кешировать, так как она включает в себя дополнительные шаги, которые могут изменяться со временем (например, URL-загрузки). Это может ухудшить эффективность кеширования.

В большинстве случаев для простых операций копирования файлов предпочтительно использовать COPY, так как она более предсказуема и эффективна. ADD лучше подходит, если вам нужна дополнительная функциональность, такая как извлечение архивов или загрузка файлов из интернета.

Oct. 26, 2023, V.Maximov

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы