Ответ
Виртуализация создает полностью изолированные виртуальные машины (VM) с собственной ОС, работающие поверх гипервизора. Каждая VM эмулирует реальное железо.
Контейнеризация (Docker, Kubernetes) использует ядро хостовой ОС, изолируя процессы через namespaces и cgroups. Контейнеры легче, быстрее запускаются и потребляют меньше ресурсов, но менее изолированы, чем VM.
Пример с Docker:
# Dockerfile
FROM node:14
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
Ключевые отличия:
- Виртуализация: полная изоляция, тяжеловесность
- Контейнеры: общее ядро, легковесность, быстрый деплой