Вопрос или проблема
У меня установлен debian stretch на телефоне с android arm64 в среде chroot. Я установил docker-ce, следуя этим шагам здесь.
При запуске docker :: systemctl start docker
возвращает эту ошибку :: Работает в chroot, игнорируя запрос.
Проверка с помощью service docker status
показывает [FAIL] Docker не запущен ... ошибка!
Как я могу запустить его внутри chroot на моем телефоне с android?
Попробуйте запустить демон вручную с помощью dockerd
(вместо использования systemctl).
Ответ или решение
Как запустить Docker внутри chroot на Android-устройстве
Запуск Docker внутри chroot-среды, такой как Debian Stretch на вашем Android-устройстве, представляет собой挑战, учитывая ограничения платформы и особенности работы Docker. В данном ответе мы рассмотрим, как успешно запустить Docker на вашем Android-устройстве в chroot-окружении.
Проблема
Вы столкнулись с ошибкой при попытке запустить Docker с помощью команды systemctl start docker
, которая возвращает сообщение: Running in chroot, ignoring request
. Это происходит потому, что systemctl
не может управлять службами в среде chroot. При этом команда service docker status
выдает сообщение [FAIL] Docker is not running ... failed!
, что означает, что служба Docker не может быть запущена стандартным способом.
Решение
Для запуска Docker в chroot необходимо использовать dockerd
напрямую, так как управление службами с помощью systemctl
будет недоступно в чroot-среде. Следуйте приведенной ниже инструкции:
-
Подготовка окружения
Убедитесь, что у вас есть все необходимые зависимости для работы Docker в chroot. Проверьте наличие следующих пакетов:
apt update apt install -y apt-transport-https ca-certificates curl software-properties-common
-
Запуск docker daemon вручную
Вместо использования
systemctl
, вы можете запустить Docker daemon (dockerd) напрямую. Для этого выполните следующую команду:dockerd --host=unix:///var/run/docker.sock
Это запустит Docker в фоновом режиме и начнет слушать на стандартном сокете Docker.
-
Настройка прав доступа
Убедитесь, что у вас есть необходимые права доступа для работы с Docker. Вам может потребоваться запускать команды Docker с правами superuser:
sudo docker run hello-world
-
Проверка работы Docker
Чтобы убедиться, что Docker работает корректно, выполните следующую команду:
docker info
Если все работает правильно, вы увидите информацию о текущей конфигурации Docker.
Заключение
Запуск Docker в chroot на Android-устройстве требует некоторых дополнительных шагов по сравнению с традиционными Linux-системами. Использование dockerd
напрямую вместо systemctl
обеспечивает гибкость и позволяет избежать проблем, связанных с ограничениями среды chroot. Следуя указаниям выше, вы сможете успешно запустить Docker и использовать все его возможности на вашем устройстве.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться за поддержкой.