שגיאת 'הרשאה נדחתה' של Docker

Sgy T Hrs H Ndhth Sl Docker



כשאתה עובד עם Docker, אתה עלול להיתקל במקרה שבו הפקודה מחזירה שגיאה 'הרשאה נדחתה'. שגיאה זו מתרחשת כאשר אתה מנסה להפעיל את ה-Docker ללא הרשאות מספיקות עבור הפקודה.

Docker דורש הרשאות sudo או root כדי לבצע את הפקודות המשויכות כברירת מחדל. ניסיון להפעיל פקודה כלשהי ללא ההרשאות הנדרשות מוביל לשגיאה הידועה לשמצה 'הרשאה נדחתה'.







מדריך זה מספק את השיטות והטכניקות השונות שבהן אתה יכול להשתמש כדי לתקן את השגיאה 'הרשאה נדחתה' בעת ניסיון להפעיל את הפקודות Docker.



זכור שזה לא מכסה את תהליך הפעלת Docker בסביבה חסרת שורשים. אתה יכול לבדוק את המדריך שלנו על Docker חסר שורש במשאב הבא:



דרישות:

כפי שאתה יכול לנחש, כדי לעקוב אחרי הפוסט הזה, אתה נדרש להצטייד בפרטים הבאים:





    1. Docker גרסה 20.0 ומעלה
    2. הרשאות סודו או שורש במערכת המארחת

מהי השגיאה 'הרשאה נדחתה'?

כאשר השגיאה 'הרשאה נדחתה' מתרחשת ב-Docker, זה אומר שהמערכת המארחת לא יכולה ליצור תקשורת עם הדמון של Docker בגלל הרשאות לא מספיקות. דוגמה מוצגת בקטע הבא:

$ דוקר ריצת -זה busybox ש



אם אתה נתקל בשגיאה הנתונה, תוכל להשתמש בכמה מהשיטות הבאות כדי ללמוד כיצד לתקן אותה.



שיטה 1: הפעל את ה-Docker כשורש

השיטה הראשונה והברורה ביותר לפתרון השגיאה 'הרשאה נדחתה' של Docker היא שימוש בפקודה 'sudo'. אם יש לך הרשאות sudo, אתה יכול לתקן את זה על ידי הפעלת הפקודה הקשורה באמצעות sudo.

לדוגמה, כדי לתקן את השגיאה האמורה, אנו יכולים להוסיף sudo לפני הפקודה באופן הבא:

$ סודו דוקר ריצת -זה busybox ש



כפי שאתה יכול לראות, Docker מושך בהצלחה את התמונות הדרושות ומפעיל את המיכל.

שיטה 2: הפעל מחדש את ה-Docker Daemon

לפעמים, אתה יכול לקבל את השגיאה 'הרשאה נדחתה' ב-Docker אם למנוע יש בעיה. במקום לאתר את הבעיה באופן ידני, אתה יכול לנסות הפעלה מחדש מהירה של הדמון Docker כדי לטעון אותו מחדש.

התחל על ידי בדיקת המצב של דמון ה-Docker באופן הבא:

$ docker systemctl status docker



לאחר שתוודא ש-Docker פועל, הפעל מחדש את השירות עם הפקודה הבאה:

$ סודו systemctl הפעל מחדש את docker


זה אמור לאתחל את דמון ה-Docker ולתקן כל בעיה פוטנציאלית שעשויה למנוע ממך להפעיל פקודה כלשהי.

שיטה 3: הפעל את המשתמש שאינו שורש

שיטה נוספת שבה אתה יכול להשתמש כדי לפתור את השגיאה 'הרשאה נדחתה' ב-Docker היא לאפשר למשתמשים שאינם שורשיים לבצע את הפקודות של Docker.

כדי להפעיל שיטה זו, היכנס למערכת המארחת וצור קבוצה חדשה עבור Docker.

$ סודו הוספה קבוצתית דוקר


לאחר מכן, הוסף כל משתמש שתרצה לקבוצת Docker באופן הבא:

$ סודו usermod -aG docker linuxhint


הפקודה הקודמת צריכה להוסיף את משתמש ה-linuxhint לקבוצת Docker.

לבסוף, החל את השינויים בקבוצה על ההפעלה הנוכחית באמצעות הפקודה הבאה:

$ newgrp docker


לאחר השלמתו, אתה יכול להפעיל כל פקודת Docker מבלי להשתמש ב-sudo עבור כל משתמש בקבוצת Docker.

שיטה 4: הגדר מחדש את הרשאות Docker

השיטה הבאה שבה אתה יכול להשתמש היא איפוס ההרשאות עבור שקעי Docker. התחל על ידי שינוי הבעלות על שקע Docker Unix על ידי הפעלת הפקודה הבאה:

$ סודו chown root:docker / היה / לָרוּץ / docker.sock


לאחר מכן, קח בעלות על ספריית Docker הנסתרת בספריית הבית שלך באמצעות הפקודה כדלקמן:

$ סודו chown ' $USER ' : ' $USER ' $HOME / דוקר


לבסוף, הקצה את הקבוצה עם הרשאות הקריאה והכתיבה לספרייה באופן הבא:

$ סודו chmod g+rw ' $HOME /.docker'


השיטות המסופקות אמורות להגדיר הרשאות מספיקות עבור קבצי וספריות Docker חיוניים.

סיכום

במדריך זה, למדנו כיצד אנו יכולים להשתמש בארבע השיטות העיקריות כדי לפתור את השגיאה 'הרשאה נדחתה' של Docker בעת הפעלת פקודת Docker.