Вопрос или проблема
Я пытался установить Docker Desktop на свой ПК, и после этого проект, который у меня был, перестал работать, по всей видимости, из-за этого и Docker. После предположительной деинсталляции с помощью следующих команд:
dpkg -l | grep -i docker
sudo apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli docker-compose-plugin
sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce docker-compose-plugin
sudo rm -rf /var/lib/docker /etc/docker
sudo rm /etc/apparmor.d/docker
sudo groupdel docker
sudo rm -rf /var/run/docker.sock
Я снова попытался установить его с помощью sudo apt-get install docker.io, но получил проблему с зависимостями с containerd и runc. Мне удалось “предположительно” снова установить с помощью команд:
sudo apt-get remove containerd.io
sudo apt install docker.io docker-compose -y
Но теперь я не могу запустить простой контейнер, потому что получаю следующую ошибку, независимо от того, что я делаю:
docker: Не удается подключиться к Docker daemon по адресу unix:///home/mnemonic/.docker/desktop/docker.sock. Запущен ли Docker daemon?
Смотрите 'docker run --help'.
Docker daemon действительно работает, если я проверяю его с помощью systemctl status. Я проверил права на Docker с помощью:
ls -l /home/mnemonic/.docker/desktop/docker.sock
И они верные. Я создал группу пользователей Docker и присоединился к ней. Я перезагружал и запускал Docker-сервис десятки раз, как и свой ПК. Я вручную запускал Docker daemon, но без результата.
Хорошо, я нашел решение. Похоже, что в Ubuntu и других дистрибутивах на основе Debian есть файл конфигурации Docker в формате JSON, который устанавливает “контекст” Docker на “docker-desktop”.
Я просто удалил эти 2 строки в $HOME/.docker/config.json
:
credsStore
currentContext
Последняя строка, “currentContext”, была установлена на “docker-desktop”, который был удален.
Источник для этого решения был найден здесь:
https://github.com/docker/desktop-linux/issues/20
где вы можете найти комментарий пользователя, который приводит вас к:
https://docs.docker.com/desktop/uninstall/
Я люблю их.
Ответ или решение
Проблема с демон Docker после установки (и удаления) Docker Desktop
Описание проблемы
Вы столкнулись с проблемой, когда после установки и удаления Docker Desktop на вашем ПК проект перестал работать. После успешного удаления Docker и повторной установки через sudo apt-get install docker.io
, вы получили ошибку при попытке запустить контейнер:
docker: Cannot connect to the Docker daemon at unix:///home/mnemonic/.docker/desktop/docker.sock. Is the docker daemon running?
Несмотря на то, что демон Docker запущен и права доступа к сокету корректны, проблема все еще возникала.
Решение
Выявлено, что проблема заключается в конфигурационном файле Docker на вашей системе. В Linux (в частности, на Ubuntu и других дистрибутивах Debian) существует JSON файл конфигурации, который может устанавливать контекст Docker на "docker-desktop", даже если вы удалили Docker Desktop.
Шаги для решения:
-
Откройте конфигурационный файл:
Вам нужно отредактировать файл конфигурации Docker, который расположен по следующему пути:$HOME/.docker/config.json
-
Удалите ненужные строки:
Найдите и удалите строки, связанные сcredsStore
иcurrentContext
. Например:{ "credsStore": "desktop", "currentContext": "docker-desktop" }
Это может выглядеть как вышеуказанный пример. Убедитесь, что после редактирования файл не содержит указанных строк.
-
Сохраните изменения:
После редактирования файла сохраните изменения и закройте редактор. -
Перезапустите демон Docker:
Рекомендуется перезапустить демон Docker для применения изменений. Используйте команду:sudo systemctl restart docker
-
Проверьте соединение:
Попробуйте запустить контейнер снова, используя команду:docker run hello-world
Если все сделано правильно, контейнер должен запуститься без ошибок.
Заключение
Если после выполнения этих шагов проблема не устранена, стоит проверить, установлены ли у вас все зависимости, такие как containerd
и runc
. Убедитесь, что вы используете последние версии этих компонентов. Дополнительную информацию можно найти в документации Docker по проблемам с установкой или на страницах сообщества Docker.
Благодарю за внимание, и удачи в вашей работе с Docker!