AinD: Когда Docker встречает Android

27 июл 2025

Это архивный репозиторий и может быть устаревшим.

1,488
91
1
5 лет

Знакомьтесь — AinD (Android in Docker), проект, который умеет запускать Android-приложения прямо в Docker-контейнерах. Нет, это не эмулятор и не виртуальная машина. Это своеобразный "матрешечный" подход, где внутри Docker-контейнера работает Anbox (Android in a Box), создавая изолированное окружение для Android-приложений.

Почему это интересно?

Главное преимущество AinD — отсутствие необходимости в nested virtualization (вложенной виртуализации). Это значит, что вы можете запускать Android-приложения даже на облачных инстансах, где обычно виртуализация недоступна или запрещена.

Кому это нужно?

  • Разработчикам, тестирующим приложения на разных окружениях
  • Администраторам, разворачивающим Android-сервисы в облаке
  • Пользователям, которым нужен легковесный способ запуска Android-приложений на ПК

Как это работает

AinD использует Anbox, который, в свою очередь, базируется на LXC-контейнерах. Внутри Docker создается контейнер с Android-окружением, где все процессы работают от непривилегированных пользователей. Это обеспечивает дополнительный уровень безопасности.

Быстрый старт

Для запуска потребуется Ubuntu (тестировалось на 19.10 с ядром 5.3) и несколько команд:

sudo modprobe ashmem_linux
sudo modprobe binder_linux
docker run -td --name aind --privileged -p 5900:5900 -v /lib/modules:/lib/modules:ro ghcr.io/aind-containers/aind

Через 10-20 секунд можно подключаться по VNC (порт 5900) и видеть работающий Android.

Реклама

Ключевые возможности

  1. Запуск без виртуализации — работает там, где обычные эмуляторы не запустятся
  2. Готовые образы — включает Firefox, F-Droid и базовые приложения
  3. Гибкость развертывания — поддерживает Docker Compose и Kubernetes
  4. Автоматическая установка APK — файлы в /apk.d/*.apk устанавливаются при старте
  5. Несколько вариантов доступа — VNC и Web-интерфейс через noVNC

Ограничения

Проект официально устарел (deprecated) в пользу ReDroid, который поддерживает более свежие версии Android (вплоть до 12). AinD застрял на Android 7.1, что может быть критично для некоторых приложений.

Практическое применение

  • Тестирование Android-приложений в CI/CD
  • Запуск мобильных приложений на сервере
  • Создание изолированных окружений для работы с чувствительными данными

AinD — интересный технический эксперимент, который уже уступил место более современным решениям. Для новых проектов лучше смотреть в сторону ReDroid. Но если вам нужно быстро развернуть Android 7.1 в контейнере без виртуализации — AinD все еще может быть полезен.

Screenshot

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.