Docker, LXC или виртуальная машина на сервере
Выберите VM для отдельного ядра или отдельной границы изоляции, LXC для системной среды Linux и Docker для приложения с готовым образом и вынесенными данными.
Обновлено Редакция GAW
У Docker и LXC на Linux общее ядро с хостом, на котором запущен соответствующий движок. В VM загружается своё ядро, а гипервизор предоставляет гостю виртуальные устройства. Контейнеры приложения можно запускать внутри VM.
Коротко
- VM подходит для другого ядра и даёт отдельную границу между гостем и хостом.
- LXC удобен для Linux-среды с пакетами и системными службами.
- Docker описывает приложение через образы, параметры запуска и отдельные данные.
- Проброс устройств и каталогов меняет границу доступа и состав резервной копии.
Сравнение
| Критерий | VM | LXC в Proxmox | Docker на Linux |
|---|---|---|---|
| Ядро | Гостевое | Linux-ядро узла Proxmox | Ядро Linux-хоста Docker |
| Устройства | Виртуальные устройства, отдельная настройка passthrough | Разрешения и отображение устройств хоста | Явная выдача доступа к нужным устройствам |
| Обновление | ОС и приложения внутри гостя | Пакеты внутри LXC, ядро обновляет хост | Новый образ и пересоздание контейнера, миграции данных отдельно |
| Копирование | Диски и конфигурация гостя с учётом исключений | Rootfs и включённые управляемые тома, bind mounts отдельно | Compose, настройки и секреты, данные томов или выгрузка БД |
Выбор на трёх примерах
- Для Windows или эксперимента с другим ядром создайте VM. Для PCIe-устройства заранее проверьте IOMMU, группы и совместимость хоста и гостя. Виртуальный адаптер и passthrough решают разные задачи.
- Для отдельной Linux-среды с несколькими системными службами подойдёт непривилегированный LXC. Если нужно смонтировать каталог хоста, заранее проверьте отображение UID/GID и отдельно включите каталог в план копирования.
- Для приложения с опубликованным образом и описанными томами начните с Docker Compose. В Proxmox разместите Docker внутри Linux VM. Доступ к сокету Docker, привилегированный режим и широкие bind mounts дают приложению дополнительные возможности на хосте Docker. Для каждого такого доступа проверьте необходимость.
Перед переносом сервиса ответьте на один практический вопрос. Сможете ли вы развернуть его на чистом хосте из конфигурации и копии данных? Проверьте запуск, права на файлы и поведение после обновления в тестовой среде.
Частые вопросы
Можно ли запустить Windows в LXC?
LXC использует ядро Linux хоста. Для полноценной гостевой Windows на Proxmox выберите виртуальную машину.
Где запускать Docker Compose на Proxmox?
Обычная схема для лаборатории — отдельная Linux VM с Docker Engine. У Proxmox есть поддержка OCI в LXC как технологическое превью, со своим жизненным циклом.
Что проверить перед копированием LXC?
Определите, какие пути находятся в rootfs, какие тома включены в backup и какие каталоги смонтированы с хоста. Содержимое bind mounts копируют отдельно.
Источники
- Proxmox VE. Containers — Ядро, непривилегированные контейнеры, mounts и OCI
- Proxmox VE. QEMU/KVM Virtual Machines
- Docker Engine Security
- Docker. Volumes
Нашли ошибку? ·