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

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

Использование Docker в Termux для запуска различных сервисов

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 и облачную инфраструктуру, адаптированную под любые задачи.

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

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

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

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

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