Ich hatte ein ähnliches Problem, bei dem es sich um ein Berechtigungsproblem handelt. Die Ursache für dieses Problem liegt darin, dass der Docker-Dämon / -Server immer als root
Benutzer ausgeführt wird und Sie dem Docker-Befehl immer ein Vorwort geben sollen sudo
.
Der Docker-Daemon wird anstelle eines TCP-Ports an einen Unix-Socket gebunden. Standardmäßig gehört dieser Unix-Socket dem Benutzer, root
und andere Benutzer können nur mit darauf zugreifensudo
.
Um dies zu beheben, hat Folgendes für mich funktioniert:
Überprüfen Sie zunächst, ob bereits eine Docker-Gruppe erstellt wurde:
cat /etc/group
Wenn Sie docker
in der angezeigten Liste nichts finden , müssen Sie eine erstellen:
sudo groupadd docker
Bestätigen Sie user
als Nächstes Ihre und Ihre group
Verwendung mit dem folgenden Befehl:
cat /etc/group
Scrollen Sie durch, um die Gruppe für Docker anzuzeigen. Es sollte dieses Format haben
docker:x:140:promisepreston
Wo docker
ist mein group
und promisepreston
ist meinuser
Jetzt können wir Ihren Benutzer zur Docker-Gruppe hinzufügen
Nur für Docker-Container-Dateien:
Kopieren Sie den folgenden Befehl in Ihr Terminal und führen Sie ihn genau so aus, wie er angegeben ist, ohne ihn zu ändern, unabhängig davon, welches Docker-Image / Container / Befehl Sie ausführen möchten oder ausführen möchten oder das Berechtigungsproblem auslösen:
sudo usermod -aG docker $USER
Nachdem Sie den obigen Befehl ausgeführt haben, müssen Sie sich abmelden und wieder anmelden, damit Ihre Gruppenmitgliedschaft neu bewertet wird. Unter Linux können Sie jedoch auch den folgenden Befehl ausführen, um die Änderungen an Gruppen zu aktivieren ( Kopieren Sie den folgenden Befehl in Ihrem Terminal und führen Sie ihn genau so aus, wie er angegeben ist, ohne ihn zu ändern, unabhängig davon, welches Docker-Image / Container / Befehl dies ist Sie möchten ausführen oder versuchen auszuführen oder werfen das Berechtigungsproblem auf ):
newgrp docker
Sie können jetzt überprüfen, ob Sie Docker-Befehle ohne Sudo-Berechtigungen ausführen können, indem Sie den Befehl ausführen, der das Berechtigungsproblem erneut verursacht, z. B. ( Ersetzen)my-command
durch den Namen Ihres Images / Containers / Befehls ):
docker run my-command
Für Docker- und lokale Dateisystemdateien:
Wenn Sie eine Kopie der Dateien in Ihrem lokalen Dateisystem haben, können Sie den Besitz des Anwendungsverzeichnisses, in dem die Anwendungsdateien gespeichert sind, in folgendem Format ändern:
sudo chown <your_user>:<your_group> -R my-app-directory/
In meinem Fall wird es also sein:
sudo chown promisepreston:docker -R my-app-directory/
Hinweis: Führen Sie diesen Befehl im übergeordneten Verzeichnis aus, in dem sich das Anwendungsverzeichnis befindet.
Das ist alles.
ich hoffe das hilft