Sobes.tech
Junior

Каква е разликата между образ и контейнер?

sobes.tech AI

Отговор от 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.