Android‑устройства давно перестали быть лишь клиентскими гаджетами. С помощью Termux вы получаете полноценный Linux‑терминал, а совместно с Docker — возможность разворачивать изолированные сервисы прямо на смартфоне или планшете. В этой статье мы рассмотрим, как установить и настроить Docker в Termux, а также как создавать и управлять контейнерами в мобильной среде.
Установка Termux
Для начала необходимо установить сам Termux из официального репозитория F‑Droid или из Google Play (если доступно). После установки откройте приложение и выполните базовую подготовку:
pkg update && pkg upgrade -y
Установим необходимые пакеты:
pkg install -y wget curl proot-distro git
Эти утилиты понадобятся для загрузки образов и создания chroot‑окружения, в котором будет работать Docker.
Установка Docker в Termux
Docker официально не поддерживается в Termux, однако его можно запустить внутри Linux‑дистрибутива, установленного через proot-distro. Наиболее надёжным вариантом является установка Ubuntu 22.04:
proot-distro install ubuntu-22.04
Запустим дистрибутив и обновим пакеты:
proot-distro login ubuntu-22.04
apt update && apt upgrade -y
Установим Docker из официальных репозиториев Ubuntu:
apt install -y ca-certificates curl gnupg lsb-release
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
apt install -y docker-ce docker-ce-cli containerd.io
Docker требует привилегий root. В Termux‑окружении мы можем использовать proot для эмуляции root‑права:
proot-distro login ubuntu-22.04 --shared-tmp --user root
Запустим демон Docker:
dockerd &
После небольшого ожидания проверим статус:
docker version
Создание первого контейнера
Теперь, когда Docker работает, можно создавать контейнеры. В качестве примера развернём простой веб‑сервер nginx:
docker run -d --name my-nginx -p 8080:80 nginx:latest
Откройте браузер на Android и перейдите по адресу http://127.0.0.1:8080. Вы увидите стартовую страницу Nginx, обслуживаемую из контейнера, запущенного внутри Termux.
Управление контейнерами
Все стандартные команды Docker доступны:
docker ps— список работающих контейнеров;docker stop <container_id>— остановка;docker rm <container_id>— удаление;docker logs <container_id>— просмотр логов.
Для более удобного управления рекомендуем установить docker-compose:
apt install -y docker-compose
Пример docker-compose.yml для разворачивания WordPress и MySQL:
version: '3.8'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql
wordpress:
image: wordpress:latest
ports:
- "8081:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_PASSWORD: example
depends_on:
- db
volumes:
db_data:
Запуск:
docker-compose up -d
Теперь ваш Android‑устройство выступает полноценным сервером разработки.
Оптимизация и ограничения
Несмотря на мощность современных смартфонов, стоит учитывать несколько нюансов:
- Ограничения памяти. Docker‑контейнеры используют ресурсы хоста, поэтому рекомендуется ограничивать их объёмом RAM через параметры
--memoryи--cpus. - Хранилище. Образы и тома занимают значительный объём внутренней памяти. Храните их на внешней SD‑карте, смонтировав её в
/storageи указав путь в-v. - Сетевые ограничения. По умолчанию Docker использует bridge‑сетевой драйвер, который работает в пределах Proot‑окружения. Для доступа к контейнерам из внешних сетей (Wi‑Fi) можно настроить проброс портов через
termux-open-urlили использоватьssh‑туннель.
Пример ограничения ресурсов при запуске контейнера:
docker run -d --name limited-nginx \
--memory 256m --cpus 0.5 \
-p 8082:80 nginx
Заключение
Termux в сочетании с Docker открывает новые возможности для мобильных разработчиков, системных администраторов и исследователей. Вы можете разворачивать микросервисы, тестировать инфраструктурные решения и даже обучать коллег, используя лишь Android‑устройство. При желании масштабировать решения или интегрировать их в CI/CD‑конвейеры, RybinskLab готов предложить консультации, настройку удалённого доступа, мониторинг контейнеров и разработку кастомных образов под ваши задачи.
Свяжитесь с нами, и мы поможем превратить ваш мобильный телефон в мощный инструмент DevOps.