При работе с Docker вы можете столкнуться со случаем, когда команда возвращает ошибку «отказано в доступе». Эта ошибка возникает, когда вы пытаетесь запустить Docker без достаточных разрешений для команды.
Docker по умолчанию требует прав sudo или root для выполнения связанных команд. Попытка запустить любую команду без необходимых привилегий приводит к печально известной ошибке «отказано в доступе».
В этом руководстве представлены различные методы и приемы, которые можно использовать для исправления ошибки «отказано в разрешении» при попытке запуска команд Docker.
Имейте в виду, что здесь не рассматривается процесс запуска Docker в среде без root-доступа. Вы можете ознакомиться с нашим руководством по безрутовому Docker на следующем ресурсе:
Требования:
Как вы можете догадаться, чтобы следовать этому посту, вам необходимо иметь следующее:
- Докер версии 20.0 и выше
- Разрешения Sudo или root в хост-системе
Что такое ошибка «В доступе отказано»?
Когда в Docker возникает ошибка «отказано в разрешении», это означает, что хост-система не может установить связь с демоном Docker из-за недостаточных разрешений. Пример показан ниже:
$ запуск докера -это занятой ящик ш
Если вы столкнулись с данной ошибкой, вы можете использовать некоторые из следующих методов, чтобы узнать, как ее исправить.
Способ 1. Запустите Docker от имени пользователя root
Первый и наиболее очевидный метод устранения ошибки Docker «отказано в разрешении» — использование команды «sudo». Если у вас есть привилегии sudo, вы можете исправить это, выполнив соответствующую команду с помощью sudo.
Например, чтобы исправить указанную ошибку, мы можем добавить sudo перед командой следующим образом:
$ судо запуск докера -это занятой ящик ш
Как видите, Docker успешно извлекает необходимые образы и запускает контейнер.
Способ 2. Перезапустите демон Docker.
Иногда вы можете получить ошибку «отказано в доступе» в Docker, если в движке возникла проблема. Вместо того, чтобы вручную отслеживать проблему, вы можете попытаться быстро перезапустить демон Docker, чтобы перезагрузить его.
Начните с проверки состояния демона Docker следующим образом:
$ статус docker systemctl
Убедившись, что Docker запущен, перезапустите службу с помощью следующей команды:
Это должно запустить демон Docker и устранить любую потенциальную проблему, которая может помешать вам выполнить какую-либо команду.
Способ 3: включить пользователя без полномочий root
Другой метод, который вы можете использовать для устранения ошибки «отказано в разрешении» в Docker, — разрешить пользователям без полномочий root выполнять команды Docker.
Чтобы включить этот метод, войдите в хост-систему и создайте новую группу для Docker.
$ судо групповое добавление -ф докер
Затем добавьте любого пользователя в группу Docker следующим образом:
Предыдущая команда должна добавить пользователя linuxhint в группу Docker.
Наконец, примените изменения группы к текущему сеансу, используя следующую команду:
$ докер newgrp
После завершения вы можете запустить любую команду Docker без использования sudo для любого пользователя в группе Docker.
Способ 4: перенастроить разрешения Docker
Следующий метод, который вы можете использовать, — это сброс разрешений для сокетов Docker. Начните с изменения владельца сокета Docker Unix, выполнив следующую команду:
$ судо чаун корень: докер / был / бегать / docker.sock
Затем возьмите на себя ответственность за скрытый каталог Docker в вашем домашнем каталоге, используя следующую команду:
Наконец, назначьте группу с разрешениями на чтение и запись в каталог следующим образом:
Предоставленные методы должны устанавливать достаточные разрешения для основных файлов и каталогов Docker.
Заключение
В этом руководстве мы узнали, как использовать четыре основных метода для устранения ошибки Docker «отказано в доступе» при вызове команды Docker.