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

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

Развёртывание и управление контейнерами Docker (или Podman) в Termux через пользовательские root‑less‑монтирования

Termux – это эмулятор терминала и среды Linux для Android, позволяющий запускать множество Linux-пакетов непосредственно на вашем устройстве. В последние годы развёртывание контейнеров, таких как Docker или Podman, стало популярным способом для создания изолированных сред разработки и тестирования. В этой статье мы рассмотрим, как развернуть и управлять контейнерами Docker (или Podman) в Termux без получения root-доступа, используя пользовательские root-less монтирования. Этот подход повышает безопасность и позволяет избежать проблем, связанных с root-правами.

Необходимые условия

  • Установленный Termux из F-Droid (рекомендуется) или Google Play.
  • Базовые знания Linux и командной строки.
  • Достаточно свободного места на устройстве.

Установка Docker или Podman

В Termux можно установить как Docker, так и Podman. Podman часто предпочтительнее, так как он разработан для работы без root-доступа, но мы рассмотрим оба варианта.

Установка Docker

pkg install docker

После установки, Docker может потребовать дополнительной настройки, особенно для root-less режима.

Установка Podman

pkg install podman

Podman проще настроить для root-less режима, и, как правило, он работает "из коробки" после установки.

Настройка Root-less Монтирования

Ключевым моментом является настройка root-less монтирования, которое позволяет контейнерам получать доступ к файловой системе без root-привилегий. Это достигается за счет использования user namespaces.

Проверка поддержки User Namespaces

cat /proc/sys/kernel/unprivileged_userns

Если вывод 1, то поддержка user namespaces включена. Если 0, то ее необходимо включить (требуется root-доступ, который мы избегаем). На большинстве современных Android-устройств поддержка включена по умолчанию.

Настройка Docker для Root-less режима

После установки Docker, необходимо настроить его для работы в root-less режиме. Обычно это включает в себя создание специального user namespace и настройку Docker daemon. Этот процесс может быть сложным и подвержен изменениям в зависимости от версии Docker и Termux.

Podman и Root-less режим

Podman изначально разработан для работы без root-доступа. После установки, он обычно готов к использованию без дополнительной настройки. Вы можете проверить это, запустив простую команду:

podman run hello-world

Если команда успешно выполнится, Podman настроен правильно.

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

После настройки Docker или Podman, вы можете управлять контейнерами с помощью соответствующих команд. Например:

Docker

docker pull ubuntu:latest
docker run -it ubuntu:latest /bin/bash
docker ps
docker stop 
docker rm 

Podman

podman pull ubuntu:latest
podman run -it ubuntu:latest /bin/bash
podman ps
podman stop 
podman rm 

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

  • Производительность: Работа контейнеров в Termux может быть медленнее, чем на полноценной Linux-системе.
  • Доступ к сети: Настройка сетевого взаимодействия контейнеров может быть сложной.
  • Совместимость: Не все контейнеры могут корректно работать в Termux из-за особенностей архитектуры Android.
  • Хранение данных: Рекомендуется использовать volume mounts для сохранения данных контейнеров, так как при удалении контейнера данные могут быть потеряны.

Заключение

Развертывание и управление контейнерами Docker или Podman в Termux через пользовательские root-less монтирования – это мощный способ создания изолированных сред разработки и тестирования прямо на вашем Android-устройстве. Несмотря на некоторые ограничения, этот подход предоставляет значительные преимущества с точки зрения безопасности и удобства использования. Если вам требуется помощь в настройке, оптимизации или решении проблем, связанных с Termux, Docker, Podman или другими Linux-инструментами, обращайтесь в РыбинскЛАБ. Мы предлагаем широкий спектр услуг, включая консультации, разработку и поддержку Linux-систем и контейнерных технологий.

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

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

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

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