Σφάλμα Docker “Permission Denied”.

Sphalma Docker Permission Denied



Όταν εργάζεστε με το Docker, ενδέχεται να συναντήσετε μια περίπτωση όπου η εντολή επιστρέφει ένα σφάλμα 'δεν επιτρέπεται η άδεια'. Αυτό το σφάλμα παρουσιάζεται όταν προσπαθείτε να εκτελέσετε το Docker χωρίς επαρκή δικαιώματα για την εντολή.

Το Docker απαιτεί δικαιώματα sudo ή root για να εκτελέσει τις σχετικές εντολές από προεπιλογή. Η προσπάθεια εκτέλεσης οποιασδήποτε εντολής χωρίς τα απαιτούμενα προνόμια οδηγεί στο περιβόητο σφάλμα 'δεν επιτρέπεται η άδεια'.







Αυτό το σεμινάριο παρέχει τις διάφορες μεθόδους και τεχνικές που μπορείτε να χρησιμοποιήσετε για να διορθώσετε το σφάλμα 'δεν επιτρέπεται η άδεια' όταν προσπαθείτε να εκτελέσετε τις εντολές Docker.



Λάβετε υπόψη ότι δεν καλύπτει τη διαδικασία εκτέλεσης του Docker σε περιβάλλον χωρίς root. Μπορείτε να ελέγξετε το σεμινάριο μας για το Docker χωρίς root στον ακόλουθο πόρο:



Απαιτήσεις:

Όπως μπορείτε να μαντέψετε, για να ακολουθήσετε αυτήν την ανάρτηση, απαιτείται να έχετε τα εξής:





    1. Docker έκδοση 20.0 και νεότερη
    2. Δικαιώματα Sudo ή root στο κεντρικό σύστημα

Τι είναι το σφάλμα 'Απόρριψη άδειας';

Όταν εμφανίζεται το σφάλμα 'άρνηση άδειας' στο Docker, αυτό σημαίνει ότι το κεντρικό σύστημα δεν μπορεί να δημιουργήσει επικοινωνία με τον δαίμονα του Docker λόγω ανεπαρκών αδειών. Ένα παράδειγμα φαίνεται στο παρακάτω:

$ τρέξιμο docker -το busybox SH



Εάν αντιμετωπίσετε το δεδομένο σφάλμα, μπορείτε να χρησιμοποιήσετε μερικές από τις ακόλουθες μεθόδους για να μάθετε πώς να το διορθώσετε.



Μέθοδος 1: Εκτελέστε το Docker ως Root

Η πρώτη και πιο προφανής μέθοδος επίλυσης του σφάλματος 'άρνηση άδειας' του Docker είναι η χρήση της εντολής 'sudo'. Εάν έχετε δικαιώματα sudo, μπορείτε να το διορθώσετε εκτελώντας τη σχετική εντολή χρησιμοποιώντας το sudo.

Για παράδειγμα, για να διορθώσουμε το εν λόγω σφάλμα, μπορούμε να προσαρτήσουμε το sudo πριν από την εντολή ως εξής:

$ sudo τρέξιμο docker -το busybox SH



Όπως μπορείτε να δείτε, το Docker τραβά με επιτυχία τις απαιτούμενες εικόνες και τρέχει το κοντέινερ.

Μέθοδος 2: Επανεκκινήστε το Docker Daemon

Μερικές φορές, μπορείτε να λάβετε το σφάλμα 'άρνηση άδειας' στο Docker εάν ο κινητήρας έχει πρόβλημα. Αντί να εντοπίσετε με μη αυτόματο τρόπο το πρόβλημα, μπορείτε να επιχειρήσετε μια γρήγορη επανεκκίνηση του δαίμονα του Docker για να τον επαναφορτώσετε.

Ξεκινήστε ελέγχοντας την κατάσταση του δαίμονα Docker ως εξής:

$ docker systemctl κατάστασης docker



Αφού βεβαιωθείτε ότι το Docker εκτελείται, επανεκκινήστε την υπηρεσία με την ακόλουθη εντολή:

$ sudo systemctl επανεκκίνηση docker


Αυτό θα πρέπει να εκκινήσει τον δαίμονα του Docker και να διορθώσει οποιοδήποτε πιθανό πρόβλημα που μπορεί να σας εμποδίζει να εκτελέσετε οποιαδήποτε εντολή.

Μέθοδος 3: Ενεργοποιήστε το μη ριζικό χρήστη

Μια άλλη μέθοδος που μπορείτε να χρησιμοποιήσετε για να επιλύσετε το σφάλμα 'δεν επιτρέπεται η άδεια' στο Docker είναι να επιτρέπετε στους χρήστες που δεν είναι root να εκτελούν τις εντολές Docker.

Για να ενεργοποιήσετε αυτήν τη μέθοδο, συνδεθείτε στο κεντρικό σύστημα και δημιουργήστε μια νέα ομάδα για το Docker.

$ sudo ομαδική προσθήκη -φά λιμενεργάτης


Στη συνέχεια, προσθέστε οποιονδήποτε χρήστη θέλετε στην ομάδα Docker ως εξής:

$ sudo usermod -aG docker linuxhind


Η προηγούμενη εντολή θα πρέπει να προσθέσει τον χρήστη linuxhit στην ομάδα Docker.

Τέλος, εφαρμόστε τις αλλαγές της ομάδας στην τρέχουσα περίοδο λειτουργίας χρησιμοποιώντας την ακόλουθη εντολή:

$ newgrp docker


Μόλις ολοκληρωθεί, μπορείτε να εκτελέσετε οποιαδήποτε εντολή Docker χωρίς να χρησιμοποιήσετε sudo για οποιονδήποτε χρήστη στην ομάδα Docker.

Μέθοδος 4: Ρυθμίστε ξανά τα δικαιώματα Docker

Η επόμενη μέθοδος που μπορείτε να χρησιμοποιήσετε είναι η επαναφορά των δικαιωμάτων για τις υποδοχές Docker. Ξεκινήστε αλλάζοντας την ιδιοκτησία της υποδοχής Docker Unix εκτελώντας την ακόλουθη εντολή:

$ sudo τσόουν root:docker / ήταν / τρέξιμο / αποβάθρα.κάλτσα


Στη συνέχεια, αποκτήστε την κυριότητα του κρυφού καταλόγου Docker στον αρχικό σας κατάλογο χρησιμοποιώντας την εντολή ως εξής:

$ sudo τσόουν ' $USER ' : ' $USER ' $HOME / .λιμενεργάτης


Τέλος, εκχωρήστε την ομάδα με τα δικαιώματα ανάγνωσης και εγγραφής στον κατάλογο ως εξής:

$ sudo chmod g+rw ' $HOME /.λιμενεργάτης'


Οι παρεχόμενες μέθοδοι θα πρέπει να ορίζουν επαρκή δικαιώματα για βασικά αρχεία και καταλόγους Docker.

συμπέρασμα

Σε αυτό το σεμινάριο, μάθαμε πώς μπορούμε να χρησιμοποιήσουμε τις τέσσερις κύριες μεθόδους για να επιλύσουμε το σφάλμα Docker “permission denied” κατά την κλήση μιας εντολής Docker.