Podczas pracy z Dockerem możesz spotkać się z sytuacją, w której polecenie zwróci błąd „odmowa uprawnień”. Ten błąd występuje, gdy próbujesz uruchomić okno Docker bez wystarczających uprawnień do tego polecenia.
Docker domyślnie wymaga uprawnień sudo lub root do wykonywania powiązanych poleceń. Próba uruchomienia dowolnego polecenia bez wymaganych uprawnień prowadzi do niesławnego błędu „odmowa uprawnień”.
W tym samouczku przedstawiono różne metody i techniki, których można użyć do naprawienia błędu „odmowa uprawnień” podczas próby uruchomienia poleceń Dockera.
Należy pamiętać, że nie obejmuje procesu uruchamiania Dockera w środowisku bez rootowania. Możesz sprawdzić nasz samouczek na temat Dockera bez rootowania w następującym zasobie:
Wymagania:
Jak możesz się domyślić, aby móc śledzić ten post, musisz mieć:
- Docker w wersji 20.0 i nowszej
- Sudo lub uprawnienia roota w systemie hosta
Co oznacza błąd „Odmowa uprawnień”?
Kiedy w Dockerze pojawi się błąd „odmowa uprawnień”, oznacza to, że system hosta nie może nawiązać komunikacji z demonem Dockera z powodu niewystarczających uprawnień. Przykład pokazano poniżej:
$ uruchomienie dokera -To zajętybox cii
Jeśli napotkasz dany błąd, możesz skorzystać z poniższych metod, aby dowiedzieć się, jak go naprawić.
Metoda 1: Uruchom Docker jako root
Pierwszą i najbardziej oczywistą metodą rozwiązania błędu „odmowy uprawnień” Dockera jest użycie polecenia „sudo”. Jeśli masz uprawnienia sudo, możesz to naprawić, uruchamiając powiązane polecenie za pomocą sudo.
Na przykład, aby naprawić wspomniany błąd, możemy dodać sudo przed poleceniem w następujący sposób:
$ sudo uruchomienie dokera -To zajętybox cii
Jak widać, Docker pomyślnie pobiera wymagane obrazy i uruchamia kontener.
Metoda 2: Uruchom ponownie demona Docker
Czasami w Dockerze może pojawić się błąd „odmowa uprawnień”, jeśli silnik ma problem. Zamiast ręcznie śledzić problem, możesz spróbować szybko zrestartować demona Docker, aby go ponownie załadować.
Zacznij od sprawdzenia statusu demona Docker w następujący sposób:
$ okno dokowane okno dokowane stanu systemuctl
Po upewnieniu się, że Docker działa, uruchom ponownie usługę za pomocą następującego polecenia:
Powinno to uruchomić demona Dockera i rozwiązać wszelkie potencjalne problemy, które mogą uniemożliwiać uruchomienie dowolnego polecenia.
Metoda 3: Włącz użytkownika innego niż root
Inną metodą rozwiązania problemu „odmowy uprawnień” w Dockerze jest umożliwienie użytkownikom innym niż root wykonywania poleceń Dockera.
Aby włączyć tę metodę, zaloguj się do systemu hosta i utwórz nową grupę dla Dockera.
$ sudo dodanie grupy -F doker
Następnie dodaj dowolnego użytkownika do grupy Docker w następujący sposób:
Poprzednie polecenie powinno dodać użytkownika linuxhint do grupy Docker.
Na koniec zastosuj zmiany grupowe w bieżącej sesji, używając następującego polecenia:
$ okno dokowane newgrp
Po zakończeniu możesz uruchomić dowolne polecenie Dockera bez używania sudo dla dowolnego użytkownika w grupie Docker.
Metoda 4: Ponownie skonfiguruj uprawnienia platformy Docker
Następną metodą, którą możesz zastosować, jest zresetowanie uprawnień do gniazd Docker. Zacznij od zmiany własności gniazda Docker Unix, uruchamiając następującą komendę:
$ sudo chowane korzeń: okno dokowane / był / uruchomić / skarpeta dokowana
Następnie przejmij na własność ukryty katalog Docker w swoim katalogu domowym, używając następującego polecenia:
Na koniec przypisz grupie uprawnienia do odczytu i zapisu do katalogu w następujący sposób:
Dostarczone metody powinny ustawiać wystarczające uprawnienia do niezbędnych plików i katalogów Dockera.
Wniosek
W tym samouczku dowiedzieliśmy się, jak możemy użyć czterech głównych metod rozwiązania błędu „odmowy uprawnień” Dockera podczas wywoływania polecenia Dockera.