Ошибка Docker «Отказано в доступе»

Osibka Docker Otkazano V Dostupe



При работе с Docker вы можете столкнуться со случаем, когда команда возвращает ошибку «отказано в доступе». Эта ошибка возникает, когда вы пытаетесь запустить Docker без достаточных разрешений для команды.

Docker по умолчанию требует прав sudo или root для выполнения связанных команд. Попытка запустить любую команду без необходимых привилегий приводит к печально известной ошибке «отказано в доступе».







В этом руководстве представлены различные методы и приемы, которые можно использовать для исправления ошибки «отказано в разрешении» при попытке запуска команд Docker.



Имейте в виду, что здесь не рассматривается процесс запуска Docker в среде без root-доступа. Вы можете ознакомиться с нашим руководством по безрутовому Docker на следующем ресурсе:



Требования:

Как вы можете догадаться, чтобы следовать этому посту, вам необходимо иметь следующее:





    1. Докер версии 20.0 и выше
    2. Разрешения Sudo или root в хост-системе

Что такое ошибка «В доступе отказано»?

Когда в Docker возникает ошибка «отказано в разрешении», это означает, что хост-система не может установить связь с демоном Docker из-за недостаточных разрешений. Пример показан ниже:

$ запуск докера -это занятой ящик ш



Если вы столкнулись с данной ошибкой, вы можете использовать некоторые из следующих методов, чтобы узнать, как ее исправить.



Способ 1. Запустите Docker от имени пользователя root

Первый и наиболее очевидный метод устранения ошибки Docker «отказано в разрешении» — использование команды «sudo». Если у вас есть привилегии sudo, вы можете исправить это, выполнив соответствующую команду с помощью sudo.

Например, чтобы исправить указанную ошибку, мы можем добавить sudo перед командой следующим образом:

$ судо запуск докера -это занятой ящик ш



Как видите, Docker успешно извлекает необходимые образы и запускает контейнер.

Способ 2. Перезапустите демон Docker.

Иногда вы можете получить ошибку «отказано в доступе» в Docker, если в движке возникла проблема. Вместо того, чтобы вручную отслеживать проблему, вы можете попытаться быстро перезапустить демон Docker, чтобы перезагрузить его.

Начните с проверки состояния демона Docker следующим образом:

$ статус docker systemctl



Убедившись, что Docker запущен, перезапустите службу с помощью следующей команды:

$ судо systemctl перезапустить докер


Это должно запустить демон Docker и устранить любую потенциальную проблему, которая может помешать вам выполнить какую-либо команду.

Способ 3: включить пользователя без полномочий root

Другой метод, который вы можете использовать для устранения ошибки «отказано в разрешении» в Docker, — разрешить пользователям без полномочий root выполнять команды Docker.

Чтобы включить этот метод, войдите в хост-систему и создайте новую группу для Docker.

$ судо групповое добавление докер


Затем добавьте любого пользователя в группу Docker следующим образом:

$ судо пользовательский мод -aG Докер Linuxhint


Предыдущая команда должна добавить пользователя linuxhint в группу Docker.

Наконец, примените изменения группы к текущему сеансу, используя следующую команду:

$ докер newgrp


После завершения вы можете запустить любую команду Docker без использования sudo для любого пользователя в группе Docker.

Способ 4: перенастроить разрешения Docker

Следующий метод, который вы можете использовать, — это сброс разрешений для сокетов Docker. Начните с изменения владельца сокета Docker Unix, выполнив следующую команду:

$ судо чаун корень: докер / был / бегать / docker.sock


Затем возьмите на себя ответственность за скрытый каталог Docker в вашем домашнем каталоге, используя следующую команду:

$ судо чаун ' $USER ' : ' $USER ' $HOME / .docker


Наконец, назначьте группу с разрешениями на чтение и запись в каталог следующим образом:

$ судо chmod г+рв ' $HOME /.докер'


Предоставленные методы должны устанавливать достаточные разрешения для основных файлов и каталогов Docker.

Заключение

В этом руководстве мы узнали, как использовать четыре основных метода для устранения ошибки Docker «отказано в доступе» при вызове команды Docker.