We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Контейнеризация приложений в Termux с использованием podman и rootless‑Docker

Подробное руководство по запуску контейнеров в Termux без root-прав: установка podman, настройка rootless Docker, работа с образами и сетями.

Termux — мощная терминальная среда для Android, позволяющая запускать Linux‑утилиты без root‑доступа. Современные задачи разработки и тестирования требуют контейнеризации. В этой статье разберём, как использовать podman и rootless Docker внутри Termux для изолированного запуска приложений.

Подготовка окружения

Обновите пакеты и установите базовые зависимости:

pkg update && pkg upgrade -y
pkg install -y proot-distro git wget curl

Для работы podman и Docker потребуется проот‑окружение. Установим Debian через proot-distro:

proot-distro install debian
proot-distro login debian

Теперь вы внутри Debian‑контейнера в Termux. Далее все команды выполняются там.

Установка Podman (rootless)

Podman изначально работает без демона и не требует root. Установим его:

apt update && apt install -y podman uidmap slirp4netns
# Настройка subuid/subgid для текущего пользователя
echo "$(whoami):100000:65536" | tee /etc/subuid /etc/subgid
# Включение user namespace
sysctl -w kernel.unprivileged_userns_clone=1

Проверка:

podman run --rm alpine echo "Podman works in Termux!"

Установка Rootless Docker

Docker в rootless‑режиме запускает демон от пользователя. Установим через официальный скрипт:

curl -fsSL https://get.docker.com/rootless | sh
# Добавьте в ~/.bashrc или ~/.profile:
export PATH=/home/$(whoami)/bin:$PATH
export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
# Перезапустите сессию или source ~/.bashrc

Запуск демона:

systemctl --user start docker
systemctl --user enable docker

Проверка:

docker run --rm hello-world

Работа с образами и контейнерами

Оба инструмента совместимы с OCI‑образами. Примеры:

  • Сборка образа: podman build -t myapp . или docker build -t myapp .
  • Запуск с пробросом портов (через slirp4netns): podman run -d -p 8080:80 nginx
  • Список контейнеров: podman ps -a / docker ps -a
  • Удаление: podman rm -f

Для доступа к контейнерам извне Termux используйте VPN‑туннель (например, WireGuard) для создания локальной сети между устройствами — это позволяет тестировать сервисы на других гаджетах без публичного доступа.

Ограничения и советы

  • Файловая система: лучше монтировать тома в /data/data/com.termux/files/home для персистентности.
  • Производительность: proot добавляет накладные расходы; для тяжёлых задач рассмотрите chroot или виртуализацию.
  • Сеть: slirp4netns не поддерживает все режимы; для сложных сетей настройте pasta или пользовательские CNI‑плагины.
  • Обновления: следите за версиями podman/Docker в репозиториях Debian — старые версии могут не поддерживать новые фичи.

Заключение

Контейнеризация в Termux с podman и rootless Docker открывает возможности для разработки, CI/CD и тестирования прямо на смартфоне. Podman проще в настройке (нет демона), Docker — привычнее для экосистемы. Выбирайте под задачу.

РыбинскЛАБ оказывает услуги по настройке мобильных DevOps‑сред, аудиту безопасности контейнеров и обучению работе с Termux/Linux на Android. Обращайтесь — поможем собрать эффективный стек под ваши задачи.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект