Ответ
Проблемы с Docker обычно возникают из-за конфигурации, прав доступа или конфликтов ресурсов. Вот основные причины и способы диагностики:
-
Демон Docker не запущен.
# Проверить статус (systemd) sudo systemctl status docker # Запустить sudo systemctl start docker # Добавить в автозагрузку sudo systemctl enable docker -
Отсутствие прав у пользователя. По умолчанию управлять Docker может только root или пользователи в группе
docker.# Добавить текущего пользователя в группу docker sudo usermod -aG docker $USER # После этого необходимо выйти из системы и зайти заново # Проверить группы пользователя groups $USER -
Конфликты с другими контейнерами или образами.
# Показать все контейнеры (работающие и остановленные) docker ps -a # Удалить все остановленные контейнеры docker container prune # Удалить все неиспользуемые образы, сети, сборки docker system prune -a -
Проблемы с хранилищем Docker (Disk space). Docker может перестать работать, если закончилось место на диске, особенно в
/var/lib/docker.# Проверить использование диска Docker docker system df # Очистить всё docker system prune -a --volumes -
Конфликты сетевых настроек или брандмауэра.
# Проверить сетевые интерфейсы Docker docker network ls # Перезапустить сетевой стек Docker sudo systemctl restart docker # Проверить, не блокирует ли брандмауэр порты/сети Docker sudo iptables -L -n | grep DOCKER -
Конфликты с другими системами виртуализации. Если на одном хосте одновременно работают Docker (использующий, например, WSL2 или Hyper-V на Windows) и VirtualBox/VMware, могут возникать конфликты гипервизоров. Обычно требуется остановить одну из платформ.
-
Поврежденные данные или образы.
# Проверить логи демона Docker sudo journalctl -u docker.service # Попробовать полный сброс (осторожно! удалит всё) sudo systemctl stop docker sudo rm -rf /var/lib/docker sudo systemctl start docker
Первые шаги диагностики:
# 1. Проверить, что демон работает
sudo systemctl status docker
# 2. Проверить базовую команду от имени root
sudo docker run hello-world
# 3. Если с root работает, а с пользователем — нет, проблема в правах (п.2 выше).
# 4. Проверить общую информацию и предупреждения
sudo docker info