Разница между базовым образом и дочерним образом в 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 для разработки ваших приложений.