Вопрос или проблема
Я начинаю изучать Laravel и следую руководству по установке с официального сайта.
Поэтому мне нужно было установить Docker с помощью этого руководства.
Когда я запускаю последнюю команду, она срабатывает нормально
sudo docker run hello-world
Затем, следуя руководству на сайте Laravel, я запускаю команду:
curl -s https://laravel.build/example-app | bash
чтобы создать приложение Laravel, как и говорилось.
Но когда я это делаю, ничего не происходит, и появляется следующее сообщение:
Docker не запущен.
Вывод команды systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-03-24 09:55:07 EDT; 6min ago
Docs: https://docs.docker.com
Main PID: 1445 (dockerd)
Tasks: 13
CGroup: /system.slice/docker.service
└─1445 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Mar 24 09:55:06 wrrnrtm-A320M-HD2 dockerd[1445]: time="2021-03-24T09:55:06.568086445-04:00" level=warning msg="Ваш ядро не поддерживает планировщик реального времени CPU"
Mar 24 09:55:06 wrrnrtm-A320M-HD2 dockerd[1445]: time="2021-03-24T09:55:06.568093668-04:00" level=warning msg="Ваш ядро не поддерживает cgroup blkio weight"
Mar 24 09:55:06 wrrnrtm-A320M-HD2 dockerd[1445]: time="2021-03-24T09:55:06.568100040-04:00" level=warning msg="Ваш ядро не поддерживает cgroup blkio weight_device"
Mar 24 09:55:06 wrrnrtm-A320M-HD2 dockerd[1445]: time="2021-03-24T09:55:06.568236866-04:00" level=info msg="Загрузка контейнеров: начало."
Mar 24 09:55:07 wrrnrtm-A320M-HD2 dockerd[1445]: time="2021-03-24T09:55:07.227307787-04:00" level=info msg="Мост по умолчанию (docker0) получил IP-адрес 172.17.0.0/16. Опция демона --bip может быть использована для установки предпочитаемого IP-адреса"
Mar 24 09:55:07 wrrnrtm-A320M-HD2 dockerd[1445]: time="2021-03-24T09:55:07.501565370-04:00" level=info msg="Загрузка контейнеров: готово."
Mar 24 09:55:07 wrrnrtm-A320M-HD2 dockerd[1445]: time="2021-03-24T09:55:07.551553136-04:00" level=info msg="Демон Docker" commit=363e9a8 graphdriver(s)=overlay2 version=20.10.5
Mar 24 09:55:07 wrrnrtm-A320M-HD2 dockerd[1445]: time="2021-03-24T09:55:07.551881250-04:00" level=info msg="Демон завершил инициализацию"
Mar 24 09:55:07 wrrnrtm-A320M-HD2 systemd[1]: Запущен Docker Application Container Engine.
Mar 24 09:55:07 wrrnrtm-A320M-HD2 dockerd[1445]: time="2021-03-24T09:55:07.578162675-04:00" level=info msg="API прослушивает на /var/run/docker.sock"
Я не имею представления, что я делаю не так. Я использую Xubuntu 18.04
Я полагаю, что Docker не настроен на работу с вашим обычным пользователем.
Попробуйте запустить ваш curl с sudo:
sudo curl -s https://laravel.build/example-app | bash
Если сработает, проблема была в разрешениях. Если вы хотите запускать docker с вашим обычным пользователем, добавьте его в группу docker:
sudo usermod -aG docker your_user
Вероятно, вам нужно будет перезагрузить машину после этого.
Ответ или решение
Проблема с запуском Docker при создании приложения Laravel: Решение и рекомендации
При попытке создать приложение Laravel с использованием Docker на Xubuntu 18.04 вы столкнулись с сообщением об ошибке: "Docker is not running." Несмотря на то, что команда sudo docker run hello-world
работает корректно, команда curl -s https://laravel.build/example-app | bash
выдает вышеупомянутое сообщение.
Шаг 1: Проверка состояния Docker
Согласно выводам команды systemctl status docker
, служба Docker активна и работает. Это говорит о том, что Docker установлен правильно. Однако проблема может быть связана с правами доступа.
Шаг 2: Запуск с правами суперпользователя
Чтобы исключить проблемы с разрешениями, попробуйте запустить команду создания приложения с sudo
:
sudo curl -s https://laravel.build/example-app | bash
Если команда выполняется успешно, это указывает на то, что проблема действительно связана с правами доступа.
Шаг 3: Добавление пользователя в группу Docker
Чтобы избежать необходимости использовать sudo
при каждом запуске Docker, рекомендуется добавить вашего пользователя в группу docker
. Это позволит запускать Docker-команды без привилегий администратора.
Для этого выполните следующую команду:
sudo usermod -aG docker <ваш_пользователь>
Подставьте вместо <ваш_пользователь>
имя вашего пользователя. После этого рекомендуется перезагрузить систему, чтобы изменения вступили в силу.
Шаг 4: Проверка и тестирование
После окончания перезагрузки проверьте, работает ли Docker без sudo
:
docker run hello-world
Если эта команда проходит без ошибок, попробуйте снова запустить команду для создания приложения Laravel:
curl -s https://laravel.build/example-app | bash
Заключение
Если вы следовали всем вышеуказанным шагам, но проблема остается нерешенной, возможно, стоит рассмотреть следующие варианты:
- Проблемы с версией Docker: Убедитесь, что у вас установлена последняя версия Docker, так как некоторые ошибки могут быть связаны с устаревшими версиями.
- Компьютерная система и зависимости: Убедитесь, что все зависимости Docker установлены правильно. Например, для работы Docker требуется поддержка cgroup и другие системные зависимости.
- Логи Docker: Изучите логи Docker для поиска ошибок и предупреждений, которые могут дать дополнительную информацию о происходящем.
Следуя этим рекомендациям, вы сможете устранить проблемы с запуском Docker и успешно создать приложение Laravel. При возникновении новых вопросов не стесняйтесь обращаться за помощью.