Каква е разликата между образ и контейнер?
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.