Termux – это мощный терминал для Android, позволяющий запускать полноценные Linux‑окружения. Одним из самых востребованных сценариев является контейнеризация приложений, которая дает возможность изолировать сервисы, управлять зависимостями и легко переносить их между устройствами. В этой статье мы разберём, как запустить два популярных контейнерных движка – Docker и Podman – непосредственно в Termux.
Что такое контейнеризация?
Контейнеры позволяют упаковать приложение со всеми его библиотеками и настройками в единый образ, который работает в изолированном пространстве без необходимости полноценной виртуальной машины. Это экономит ресурсы и упрощает деплой.
Запуск Docker в Termux
Docker официально не поддерживается на Android, но его можно установить внутри пользовательского дистрибутива Linux, запущенного через proot-distro. Ниже – пошаговый процесс.
# Обновляем репозитории Termux
pkg update -y
# Устанавливаем proot-distro и wget
pkg install -y proot-distro wget
# Скачиваем и создаём Ubuntu 22.04
proot-distro install ubuntu-22.04
# Запускаем окружение
proot-distro login ubuntu-22.04
После входа в Ubuntu необходимо выполнить стандартные инструкции по установке Docker:
# Устанавливаем зависимости
apt update && apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
# Добавляем репозиторий Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
apt update
# Устанавливаем Docker Engine
apt install -y docker-ce docker-ce-cli containerd.io
# Добавляем текущего пользователя в группу docker
usermod -aG docker $USER
# Перезапускаем сессию
newgrp docker
Теперь можно start Docker‑демон:
sudo systemctl start docker
sudo systemctl enable docker
Проверим работу:
docker run --rm hello-world
Запуск Podman в Termux
Podman – это бездемонный контейнерный движок, совместимый с Docker‑CLI, что делает его отличным выбором для мобильных устройств, где отсутствие системного демона упрощает настройку.
# Внутри того же Ubuntu‑окружения
apt install -y podman
# Проверяем версию
podman --version
Podman использует команду podman вместо docker, но синтаксис почти идентичен. Запустим контейнер:
podman run --rm -it alpine sh
Для совместимости с Docker‑командами можно создать алиас:
alias docker=podman
Значения глагола “start” в английском языке
В процессе работы с контейнерами мы часто используем команду start. В английском языке этот глагол имеет несколько смыслов:
- «начинать, запускать» – см. [dictionary.com](https://www.dictionary.com/browse/start);
- «появляться, возникать» – см. [merriam-webster.com](https://www.merriam-webster.com/dictionary/start);
- «вступать в действие, становиться активным» – см. [ahdictionary.com](https://ahdictionary.com/word/search.html?q=start).
Эти определения помогают понять, почему в терминальном окружении мы говорим «запустить Docker» – мы инициируем процесс, заставляем его «начать» работу.
Полезные советы и отладка
- Если
systemctlне работает в proot‑окружении, запустите Docker напрямую:dockerd &и проверьте статус черезdocker ps. - Для ускорения работы отключите swap в Termux:
termux-swapoff. - При работе с Podman используйте параметр
--cgroup-manager=cgroupfsдля совместимости с ядром Android.
Заключение
Контейнеризация в Termux открывает новые возможности для разработки и тестирования прямо на Android‑устройстве. Docker предоставляет привычный набор функций, а Podman – более лёгкую, бездемонную альтернативу. Если вам нужен профессиональный аудит, настройка CI/CD или обучение работе с контейнерами в мобильных окружениях, обратитесь к экспертам RybinskLab. Мы поможем внедрить контейнерные решения под любые задачи, от прототипов до production‑систем.