Поиск по сайту
Ctrl + K
Вопросы по Docker

Разница между базовым образом и дочерним образом в Docker?

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

Базовый образ (Base Image)

Базовый образ — это образ, который служит исходной точкой для создания других образов. Он может быть полным, например, образом операционной системы Ubuntu, или пустым — базовым образом, представляющим собой только контейнер без каких-либо установленных пакетов. В Docker есть так называемые "пустые" образы, которые можно использовать в качестве основ.

Пример базового образа в Dockerfile может выглядеть так:

# Используем базовый образ Ubuntu
FROM ubuntu:20.04

# Установка необходимых пакетов
RUN apt-get update && apt-get install -y \
    curl \
    vim \
    && rm -rf /var/lib/apt/lists/*

В этом примере ubuntu:20.04 является базовым образом, с которого начинается сборка вашего Docker-образа.

Дочерний образ (Child Image)

Дочерний образ — это образ, который создается на основе базового образа. Он наследует все его слои и может добавлять свои собственные. Это позволяет использовать компоненты, уже включенные в базовый образ, и добавлять или изменять их в соответствии с нуждами вашего приложения.

Например, вот как вы можете создать дочерний образ на основе базового:

# Используем базовый образ, созданный ранее
FROM my-base-image:latest

# Добавление приложений и файлов
COPY ./my-app /usr/src/my-app
WORKDIR /usr/src/my-app

# Установка зависимостей
RUN npm install
CMD ["node", "app.js"]

Здесь my-base-image:latest — это наш дочерний образ, который был создан на основе базового образа.

Краткий итог

  • Базовый образ — это исходный образ, с которого начинается создание других образов. Он может быть полным или пустым.
  • Дочерний образ — это производный образ, который наследует свойства базового образа и может иметь дополнительные настройки и файлы.
  • Понимание разницы между этими двумя типами образов поможет вам более эффективно использовать Docker для разработки ваших приложений.