Dev Container CLI

На этот месяц XDA доказывает, что самое умное улучшение VS Code — это не ещё одно расширение автодополнения, а dev containers. Логика безупречна. Dev container — это область папки с Linux-окружением, определённым файлом devcontainer.json, с закреплёнными версиями среды выполнения языка, системных пакетов и расширений редактора. Откройте папку в поддерживаемом редакторе, и инструментарий восстановит контейнер из этого файла, так что свежий клон сразу готов к работе без страницы ручной настройки. Мы протестировали восемь приложений для запуска dev containers на Windows, macOS и Linux, выбирая их по тому, насколько хорошо они поддерживают спецификацию devcontainer.json, и что происходит, когда ваш коллега на другой ОС открывает ту же папку.

На что обратить внимание при выборе приложения для dev containers

Не каждый инструмент контейнеризации понимает спецификацию dev containers, и те, которые понимают, работают на очень разных средах выполнения.

Быстрое сравнение

Приложение Лучше всего для Платформы Бесплатный план Начальная цена Выделяющаяся функция
Docker Desktop Стандартная среда выполнения, пользователи GUI Windows, macOS, Linux Бесплатно для личного использования / малого бизнеса Бизнес-тариф за место/месяц Самое широкое покрытие инструментов
Podman Desktop Замена Docker без привилегий Windows, macOS, Linux Бесплатно, открытый исходный код Бесплатно Работает без привилегий по умолчанию
DevPod Один контейнер на ноутбуке, K8s или облаке Windows, macOS, Linux Бесплатно, открытый исходный код Loft Pro для команд Модель провайдеров для облачной разработки
OrbStack Самый быстрый Docker на macOS macOS Бесплатно для личного использования Платный тариф для коммерческого использования VirtioFS, низкое потребление RAM
Rancher Desktop Docker плюс настоящий локальный K8s Windows, macOS, Linux Бесплатно, открытый исходный код Бесплатно k3s встроен
Colima Лёгкий Docker на macOS/Linux без GUI macOS, Linux Бесплатно, открытый исходный код Бесплатно Без GUI, низкие расходы
Distrobox Контейнеризированные Linux-десктопы Linux Бесплатно, открытый исходный код Бесплатно Запускает GUI-приложения из контейнеров
GitHub Codespaces Dev containers, размещённые в облаке Веб, VS Code, JetBrains Бесплатные месячные часы За час после квоты Один и тот же devcontainer.json в облаке

Приложения

1. Docker Desktop — Лучше всего для стандартной среды выполнения с самой широкой экосистемой

Docker Desktop по-прежнему то, что спецификация dev containers предполагает с первого дня. Установите его, установите расширение Dev Containers в VS Code, и “Reopen in Container” работает без какой-либо настройки. Он включает Docker Engine, Kubernetes и плагин compose, и управляет Linux VM на Windows и macOS, так что вы никогда не трогаете WSL или Lima напрямую.

Где он хромает: Условия подписки кусаются для больших организаций. Всё, что больше 250 сотрудников или 10 миллионов долларов дохода, требует Business-места. Запуск и личное использование по-прежнему бесплатны, но прочитайте лицензию перед развёртыванием на парке машин.

Ценообразование:

Платформы: Windows, macOS, Linux

Скачать: docker.com/products/docker-desktop

Итоговая строка: Если вы выбираете один инструмент и двигаетесь дальше, установите Docker Desktop и прекратите чтение. Остальная часть списка для случаев, когда лицензия или потребление RAM делают это плохой идеей.

2. Podman Desktop — Лучше всего для замены без привилегий и без лицензии

Podman Desktop — это спонсируемый Red Hat GUI над Podman, и теперь он обрабатывает devcontainer.json через расширение VS Code Dev Containers, открывая Docker-совместимый сокет. Вы получаете OCI среду выполнения, которая работает без привилегий по умолчанию, никакого демона в фоне, и разрешительную лицензию Apache 2.0.

Где она хромает: Совместимость Compose близка, но не идентична Docker. Семантика монтирования томов на macOS по-прежнему отстаёт от Docker Desktop для очень больших workspaces. Отчёты об ошибках по dev containers с тяжёлыми слоями features всё ещё появляются иногда.

Ценообразование:

Платформы: Windows, macOS, Linux

Скачать: podman-desktop.io

Итоговая строка: Podman Desktop — это прямая замена, когда лицензия Docker Desktop — проблема, и это правильный выбор, когда ваша команда уже запускает Podman на серверах.

3. DevPod — Лучше всего для одного контейнера на ноутбуке, K8s и облаке

DevPod от Loft Labs рассматривает провайдеров как подключаемые. Один и тот же devcontainer.json, который вы открываете на Docker Desktop, может запуститься на кластере Kubernetes, хосте SSH, свежем экземпляре EC2 или Loft Vcluster, с синхронизированным workspace. Он переиспользует Microsoft devcontainers/cli внутри, поэтому совместимость со спецификацией гарантирована по построению, а не переводом.

Где он хромает: Экосистема провайдеров неровная. Провайдеры AWS, GCP, Azure и K8s первой стороны хороши. Провайдеры сообщества варьируются. Настольный UI функционален, а не полирован.

Ценообразование:

Платформы: Windows, macOS, Linux, CLI

Скачать: devpod.sh

Итоговая строка: DevPod — это выбор, когда “dev container на моём ноутбуке” нужно превратить в “dev container в кластере” без переписывания файла.

4. OrbStack — Лучше всего для самого быстрого Docker на macOS

OrbStack — это замена Docker “с нуля” для Apple Silicon Macs. Холодный старт — пара секунд, простой RAM значительно ниже Docker Desktop, и VirtioFS — стандартный для bind mounts, что является одним из самых больших улучшений производительности для dev containers, которые монтируют большие монорепозитории. Он также запускает полные Linux VM наряду с контейнерами, так что вы можете упасть в shell без обёртки контейнера.

Где он хромает: Только macOS. Коммерческое использование требует платежа. Отсутствие сборок для Windows и Linux означает, что это никогда не может быть единственным инструментом для вашей команды.

Ценообразование:

Платформы: macOS

Скачать: orbstack.dev

Итоговая строка: OrbStack — это правильная первая установка на личном Mac. На рабочем Mac рассчитайте коммерческий тариф в решение.

5. Rancher Desktop — Лучше всего для настоящего локального Kubernetes плюс dev containers

Rancher Desktop от SUSE поставляется с Docker или containerd как средой выполнения и k3s как настоящим однопроцессным кластером Kubernetes. Эта комбинация необычна. Dev container расширения рассматривают это как Docker-совместимый сокет, и когда ваш workflow требует локального K8s для тестирования манифестов, Rancher Desktop покрывает обе поверхности из одной установки.

Где она хромает: Больше движущихся частей, чем простая среда выполнения контейнера. Первый запуск медленный, пока VM Linux загружается. Документация по переключению между рантаймами Docker и containerd тонкая.

Ценообразование:

Платформы: Windows, macOS, Linux

Скачать: rancherdesktop.io

Итоговая строка: Rancher Desktop — это выбор, когда ваш рабочий день колеблется между “reopen in container” и kubectl apply.

6. Colima — Лучше всего для лёгкого, без GUI Docker на macOS или Linux

Colima — это тонкий CLI над Lima, который загружает VM Linux с Docker или containerd внутри. Нет значка в трее, нет запросов на обновление, нет лицензии. Вы запускаете colima start, указываете Docker CLI на его сокет, и расширение Dev Containers в VS Code открывает папки в контейнерах без заметной разницы от Docker Desktop.

Где она хромает: Нет GUI. Поддержка Kubernetes существует, но это лучшее усилие. Производительность обмена томами приемлема, не самая быстрая в списке.

Ценообразование:

Платформы: macOS, Linux

Скачать: github.com/abiosoft/colima

Итоговая строка: Colima — это замена, ориентированная на терминал, для Docker Desktop на Mac. Выберите это, если вы уже живёте в shell.

7. Distrobox — Лучше всего для контейнеризированных Linux-десктопов

Distrobox оборачивает Podman или Docker для запуска полных Linux-дистрибутивов как тесно интегрированные контейнеры. Это не строгой спецификации runner dev containers, но он решает ту же проблему с другой стороны: среда Debian, Fedora или Arch на уровне проекта на любом хосте Linux, с доступом к вашей домашней папке и GPU. Соедините это с devcontainers/cli и у вас есть как управляемые спецификацией, так и свободные среды на уровне проекта.

Где он хромает: Только Linux. Не drop-in замена для devcontainer.json сама по себе, так что дополняет, а не заменяет другие выборы.

Ценообразование:

Платформы: Linux

Скачать: distrobox.it

Итоговая строка: Distrobox — это ответ на неизменяемых Linux-дистрибутивах, таких как Silverblue и Bazzite, где системные пакеты заблокированы, и контейнеры на уровне проекта становятся стандартным workflow.

8. GitHub Codespaces — Лучше всего для одного dev container в облаке

GitHub Codespaces берёт devcontainer.json вашего репо и запускает размещённую VM, которая открывается в браузере, VS Code или JetBrains Gateway. Переключение с локального dev container на Codespace — это движение одного клика, потому что файл уже там. Преимущество в том, что ноутбук на 16 GB может управлять Codespace на 32 GB, и новый нанятый персонал кодирует менее чем за две минуты.

Где она хромает: Исходящий трафик и стоимость вычисления после исчерпания бесплатных часов. Задержка для нажатий клавиш хороша на прочном соединении и болезненна на Wi-Fi в отеле. Некоторые сети блокируют протокол туннелирования.

Ценообразование:

Платформы: Веб, VS Code, JetBrains Gateway

Скачать: github.com/features/codespaces

Итоговая строка: Codespaces — это страховка, когда ноутбук — это не машина для запуска контейнера. Один файл, разный хост.

Как выбрать правильный

Часто задаваемые вопросы

Что такое dev container? Среда разработки, ограниченная папкой, определённая файлом .devcontainer/devcontainer.json, которая закрепляет среду выполнения, системные пакеты и расширения редактора. Откройте папку в поддерживаемом редакторе, и инструмент восстановит контейнер из этого файла.

Нужен ли мне Docker Desktop для использования dev containers? Нет. Dev containers CLI работает с любым Docker-совместимым сокетом. Podman, Colima, Rancher Desktop и OrbStack все открывают один.

Могу ли я использовать dev containers без VS Code? Да. devcontainers/cli читает один и тот же файл и открывает shell в контейнере. JetBrains Gateway также поддерживает спецификацию.

Есть ли стоимость лицензии для самих dev containers? Нет. Спецификация и справочный CLI — открытый исходный код под лицензией MIT. Стоимость исходит от среды выполнения и любого размещённого исполнения.

Как dev container сравнивается с виртуальной окружением? Venv или папка node_modules закрепляет экосистему языка. Dev container закрепляет и операционную систему, что исправляет “работает на моей машине” баг для коллег.

Могут ли dev containers использовать GPU? Да, на хостах Linux и на Windows с WSL2 и передачей CUDA. Добавьте соответствующие features и блок hostRequirements в devcontainer.json и откройте устройство GPU контейнеру.