В чем разница между образом и контейнером?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Образ (image) — это статический, неизменяемый снимок файловой системы и параметров конфигурации, необходимых для запуска приложения. Он служит шаблоном.
Контейнер (container) — это выполняющийся экземпляр образа. Он динамичен и представляет собой работающий процесс с собственным сетевым интерфейсом, файловой системой (основанной на образе) и изолированным окружением.
| Характеристика | Образ | Контейнер |
|---|---|---|
| Состояние | Неизменяемый | Изменяемый |
| Сущность | Шаблон | Рабочий экземпляр |
| Размер | Обычно меньше, чем контейнер в работе | Может быть больше из-за слоя записи |
| Жизненный цикл | Создается, хранится | Создается, запускается, останавливается, удаляется |
Пример: Образ Dockerfile:
# Базовый образ
FROM ubuntu:latest
# Копирование приложения
COPY app /app
# Установка зависимостей
RUN apt-get update && apt-get install -y python3
# Определение рабочей директории
WORKDIR /app
# Команда запуска
CMD ["python3", "main.py"]
Этот Dockerfile описывает, как построить образ. После построения образа, например командой docker build -t myapp ., мы получаем статический образ myapp.
Затем, запуская команду docker run -d myapp, мы создаем контейнер на основе этого образа. Этот контейнер является активным процессом, в котором выполняется наше приложение. Можно создать несколько контейнеров из одного образа. Изменения внутри одного контейнера (например, запись файлов) не затрагивают сам образ или другие контейнеры, запущенные из того же образа, благодаря механизму Copy-on-Write.