Ошибка permission denied при запуске docker
Ошибка выглядит так:
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sockТекст зависит от версии Docker: в старых версиях строка начинается с Got permission denied …, в новых — permission denied while trying to connect to the docker API at unix:///var/run/docker.sock. Причина и решение одни и те же.
Ошибка значит: у вашего пользователя нет прав на файл /var/run/docker.sock, через который команда docker говорит со службой Docker. Этим файлом могут пользоваться только root и участники группы docker.
Решение
Добавьте себя в группу docker:
sudo usermod -aG docker $USERЗатем выйдите из системы и войдите снова: группы применяются при входе. По SSH — закройте соединение и подключитесь заново; на компьютере с рабочим столом — выйдите из сеанса. Если Linux работает в виртуальной машине и выход не помог, перезагрузите её. Проверка:
groups
docker run hello-worldВ выводе groups должна быть docker.
Чтобы не выходить из системы прямо сейчас, можно открыть оболочку с новой группой — она действует только в этом окне терминала:
newgrp dockerГруппа docker равна правам root: её участник может запустить контейнер с доступом ко всем файлам системы. Добавляйте туда только тех, кому доверили бы root. Если такой доступ давать нельзя — набирайте sudo docker ….
Если не помогло
- Группы
dockerнет.usermodответитgroup 'docker' does not exist. Создайте её и перезапустите Docker:sudo groupadd docker, затемsudo systemctl restart docker, и сноваusermod. -aGнабрано безa. Ключ-Gбез-aзаменяет все группы пользователя, и он может потерять, например,sudo. Всегда пишите-aG.- Ошибка про
~/.docker/config.json—WARNING: Error loading config file … permission denied. Это бывает, если раньше запускалиsudo docker: папка~/.dockerстала принадлежать root. Верните её себе:
sudo chown "$USER":"$USER" "$HOME/.docker" -R
sudo chmod g+rwx "$HOME/.docker" -RЧего делать не надо
Не меняйте права на сокет командой sudo chmod 666 /var/run/docker.sock или 777. Так управление Docker, а значит и root, получает любой пользователь и любая программа на компьютере. К тому же после перезапуска Docker права вернутся обратно.
Похожая, но другая ошибка — Cannot connect to the Docker daemon … Is the docker daemon running?: служба не запущена. О ней — в справке Ошибка Cannot connect to the Docker daemon.