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

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

Использование Termux для создания и управления контейнерами Docker на Android

Termux – это терминальное приложение для Android, которое предоставляет полноценную Linux‑среду без root‑прав. Благодаря поддержке пакетов из репозитория APT и возможности запускать chroot‑подсистемы, Termux открывает путь к использованию современных DevOps‑инструментов, в том числе Docker.

Установка Termux и базовых инструментов

Для начала установим Termux из Google Play или F-Droid, а затем обновим репозитории:

pkg update && pkg upgrade -y

Установим необходимые пакеты:

pkg install proot-distro wget curl tar -y

Развёртывание полноценного дистрибутива Linux

Docker требует ядра Linux с поддержкой cgroups. На Android это ограничено, поэтому мы используем proot-distro для запуска пользовательского дистрибутива (например, Debian Bullseye) в режиме user‑space.

proot-distro install debian

Запускаем окружение:

proot-distro login debian

Установка Docker внутри Debian

После входа в Debian обновляем пакеты и добавляем официальные репозитории Docker:

apt update && apt upgrade -y
apt install apt-transport-https ca-certificates gnupg lsb-release -y
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
apt update
apt install docker.io -y

Поскольку у нас нет доступа к системному демону, запускаем Docker в режиме «rootless»:

dockerd-rootless-setuptool.sh install

После установки добавляем переменные окружения (можно добавить в ~/.bashrc):

export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock
export PATH=$HOME/bin:$PATH

Проверка работоспособности

Запускаем демон и проверяем статус:

systemctl --user start docker
docker info

Если всё настроено правильно, вы увидите информацию о Docker‑демоне, запущенном в пользовательском пространстве.

Создание и управление контейнерами

Теперь можно использовать привычные команды Docker. Пример запуска контейнера nginx:

docker run -d -p 8080:80 --name webserver nginx

Проверим, что контейнер работает:

docker ps

Для получения доступа к веб‑серверу откройте в браузере http://127.0.0.1:8080. В Termux доступ к localhost пробрасывается напрямую, поэтому вы сможете увидеть страницу Nginx.

Управление образами и контейнерами

Список доступных образов:

docker images

Остановить контейнер:

docker stop webserver

Удалить контейнер и образ:

docker rm webserver
docker rmi nginx

Автоматизация с Docker Compose

Для более сложных сценариев удобно установить docker-compose:

apt install docker-compose -y

Создадим файл docker-compose.yml в домашней директории Termux:

cat > docker-compose.yml <<'EOF'
version: "3.8"
services:
  db:
    image: postgres:13
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: secret
  api:
    image: node:14
    depends_on:
      - db
    command: node -e "console.log('API started')"
EOF

Запустим стек:

docker-compose up -d

Ограничения и рекомендации

  • Отсутствие полноценного ядра: Docker работает в режиме rootless, поэтому некоторые функции (например, сетевые драйверы типа host или macvlan) недоступны.
  • Потребление ресурсов: Android‑устройства имеют ограниченный RAM и CPU; рекомендуется ограничивать количество одновременно запущенных контейнеров.
  • Хранение данных: По умолчанию файлы контейнеров находятся в каталоге /data/data/com.termux/files/home/.local/share/docker. При необходимости перенесите их на внешнюю SD‑карту, создав символьную ссылку.
  • Обновление Termux: После обновления пакетов иногда требуется переустановить proot-distro и заново выполнить dockerd-rootless-setuptool.sh install.

Безопасность

Запуск Docker в пользовательском пространстве изолирует контейнеры от системных привилегий, но всё равно:

  • Не запускайте контейнеры от неизвестных образов.
  • Ограничьте доступ к сокету Docker через переменную DOCKER_HOST.
  • Регулярно обновляйте пакеты внутри Debian и Docker‑образы.

Заключение

Termux открывает возможности полноценного DevOps‑рабочего места прямо на Android‑устройстве. С помощью пользовательского дистрибутива и rootless‑режима Docker можно создавать, тестировать и развёртывать контейнеры без необходимости в отдельном сервере. Это особенно полезно для разработчиков, которым требуется мобильный доступ к CI/CD‑инструментам, а также для тех, кто хочет экспериментировать с микросервисной архитектурой «на ходу».

Если вам требуется более глубокая интеграция, настройка CI‑конвейеров или обучение персонала работе с контейнерами на Android, команда RybinskLab готова помочь. Мы предлагаем консультации, разработку кастомных образов и настройку инфраструктуры под ваши бизнес‑задачи. Обращайтесь к нам, и мы превратим ваш мобильный терминал в мощный инструмент DevOps.

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

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

Связаться со мной