Когато работите с Docker, може да срещнете случай, при който командата връща грешка „отказано разрешение“. Тази грешка възниква, когато се опитате да стартирате Docker без достатъчно разрешения за командата.
Docker изисква sudo или root разрешения за изпълнение на свързаните команди по подразбиране. Опитът за изпълнение на която и да е команда без необходимите привилегии води до прословутата грешка „отказано разрешение“.
Този урок предоставя различните методи и техники, които можете да използвате, за да коригирате грешката „отказано разрешение“, когато се опитвате да изпълните командите на Docker.
Имайте предвид, че не покрива процеса на стартиране на Docker в среда без root. Можете да проверите нашия урок за rootless Docker в следния ресурс:
Изисквания:
Както можете да предположите, за да следвате тази публикация, трябва да имате следното:
- Docker версия 20.0 и по-нова
- Sudo или root разрешения на хост системата
Какво представлява грешката „Отказано разрешение“?
Когато възникне грешка „отказано разрешение“ в Docker, това означава, че хост системата не може да установи комуникация с демона на Docker поради недостатъчни разрешения. Пример е показан в следното:
$ докер изпълнение -то busybox ш
Ако срещнете дадената грешка, можете да използвате някои от следните методи, за да научите как да я коригирате.
Метод 1: Стартирайте Docker като root
Първият и най-очевиден метод за разрешаване на грешката „отказано разрешение“ на Docker е използването на командата „sudo“. Ако имате привилегии на sudo, можете да го поправите, като изпълните свързаната команда с помощта на sudo.
Например, за да коригираме споменатата грешка, можем да добавим sudo преди командата, както следва:
$ sudo докер изпълнение -то busybox ш
Както можете да видите, Docker успешно изтегля необходимите изображения и стартира контейнера.
Метод 2: Рестартирайте Docker Daemon
Понякога можете да получите грешката „отказано разрешение“ в Docker, ако двигателят има проблем. Вместо ръчно да проследявате проблема, можете да опитате бързо да рестартирате демона Docker, за да го презаредите.
Започнете, като проверите състоянието на Docker демона, както следва:
$ докер systemctl състояние докер
След като се уверите, че Docker работи, рестартирайте услугата със следната команда:
Това трябва да зареди демона на Docker и да коригира всеки потенциален проблем, който може да ви пречи да изпълнявате която и да е команда.
Метод 3: Активиране на не-Root потребител
Друг метод, който можете да използвате, за да разрешите грешката „отказано разрешение“ в Docker, е да позволите на потребителите, които не са root, да изпълняват командите на Docker.
За да активирате този метод, влезте в хост системата и създайте нова група за Docker.
$ sudo groupadd -f докер
След това добавете всеки потребител, който желаете, към групата Docker, както следва:
Предишната команда трябва да добави потребителя на linuxhint към групата Docker.
И накрая, приложете груповите промени към текущата сесия, като използвате следната команда:
$ newgrp докер
След като приключите, можете да стартирате всяка Docker команда, без да използвате sudo за всеки потребител в Docker групата.
Метод 4: Преконфигурирайте разрешенията на Docker
Следващият метод, който можете да използвате, е нулиране на разрешенията за Docker сокети. Започнете, като промените собствеността на сокета на Docker Unix, като изпълните следната команда:
$ sudo хапвам корен: докер / беше / тичам / докер.чорап
След това поемете собственост върху скритата директория Docker във вашата домашна директория, като използвате командата, както следва:
И накрая, задайте групата с разрешения за четене и запис към директорията, както следва:
Предоставените методи трябва да задават достатъчни разрешения за основни файлове и директории на Docker.
Заключение
В този урок научихме как можем да използваме четирите основни метода за разрешаване на грешката Docker „отказано разрешение“ при извикване на Docker команда.