Termux – это мощный терминал для Android, который позволяет запускать полноценную Linux‑окружение. Благодаря возможности установить Docker, вы получаете доступ к контейнеризации прямо на мобильном устройстве. В этой статье мы пошагово разберём, как подготовить Termux, установить Docker и запустить в контейнерах такие сервисы, как nginx, PostgreSQL и Redis.
Подготовка среды
Перед установкой Docker убедитесь, что Termux обновлён и имеет необходимые пакеты для работы с эмуляцией Linux‑ядра.
apt update && apt upgrade -y
apt install -y proot-distro git curl wget tar
Для лучшей совместимости рекомендуется установить proot-distro, который позволяет запускать полноценный дистрибутив (например, Ubuntu) внутри Termux.
Установка Docker в Termux
Существует несколько способов. Самый простой – воспользоваться готовым скриптом termux-docker, который автоматически настроит окружение.
curl -L https://raw.githubusercontent.com/termux/termux-docker/master/install.sh -o install-docker.sh
chmod +x install-docker.sh
./install-docker.sh
Скрипт выполнит следующие действия:
- Создаст пользовательскую файловую систему
/data/data/com.termux/files/usr/var/lib/docker. - Скачавает статически скомпилированный бинарник Docker.
- Настроит системный демон
dockerdдля работы в режиме без systemd.
После установки запустите демон Docker:
dockerd &
Проверьте, что клиент может связаться с демоном:
docker version
Настройка Docker в Termux
Docker в Termux работает без systemd, поэтому необходимо задать несколько переменных окружения, чтобы клиент находил сокет демона.
export DOCKER_HOST=unix:///data/data/com.termux/files/usr/var/run/docker.sock
Эту строку удобно добавить в файл ~/.bashrc (или ~/.zshrc), чтобы переменная устанавливалась автоматически при каждом запуске терминала.
Запуск популярных сервисов
Теперь, когда Docker работает, можно запускать любые контейнеры. Ниже представлены примеры самых востребованных сервисов.
1. Веб‑сервер Nginx
docker run -d --name nginx \
-p 8080:80 \
-v $HOME/nginx/html:/usr/share/nginx/html \
nginx:latest
После выполнения команды откройте в браузере http://localhost:8080 (или http://127.0.0.1:8080) – вы увидите стартовую страницу Nginx.
2. PostgreSQL
docker run -d --name postgres \
-e POSTGRES_PASSWORD=secret \
-e POSTGRES_USER=termux \
-e POSTGRES_DB=termuxdb \
-p 5432:5432 \
-v $HOME/postgres/data:/var/lib/postgresql/data \
postgres:15-alpine
Подключиться к базе можно с помощью любого клиента, указав host=127.0.0.1, port=5432, пользователя termux и пароль secret.
3. Redis
docker run -d --name redis \
-p 6379:6379 \
redis:7-alpine
Redis будет доступен на 127.0.0.1:6379. Для проверки выполните:
redis-cli ping
Ответ PONG подтверждает, что сервис работает.
Полезные советы и ограничения
- Ограничения памяти и CPU. Android‑устройства обычно имеют ограниченный объём RAM (2‑8 ГБ). При запуске нескольких контейнеров следите за потреблением ресурсов через
htopв Termux. - Сетевой доступ. По умолчанию контейнеры используют мостовой сетевой интерфейс, доступный только с локального устройства. Для доступа из внешней сети потребуется проброс портов через
adb reverseили настройку VPN. - Хранение данных. Обязательно монтируйте тома в домашнюю директорию (
$HOME), иначе данные могут быть удалены при очистке кэша Termux. - Обновление Docker. Скрипт
termux-dockerпериодически обновляется. Для получения последних версий выполните./install-docker.sh --upgrade.
Заключение
Docker в Termux открывает новые возможности для разработки и тестирования прямо на смартфоне: вы можете развернуть веб‑сервер, базы данных, кэширующие сервисы и даже микросервисную архитектуру без необходимости в отдельном ноутбуке или сервере. Следуя описанным шагам, вы быстро настроите полноценную контейнерную среду, адаптированную под мобильные ограничения.
Если вам требуется более глубокая настройка, автоматизация развёртывания или профессиональная поддержка ваших Docker‑решений, обратитесь к услугам RybinskLab. Мы предоставляем консультации, настройку CI/CD и облачную инфраструктуру, адаптированную под любые задачи.