Ich habe nach einem Update von Ubuntu 18.04 plötzlich Probleme: Vorher habe ich Docker ohne Probleme auf dem System verwendet, aber plötzlich kann ich es nicht. Soweit ich das beurteilen kann, sehen die Berechtigungen richtig aus:
$ docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
$ ls -last /var/run/docker.sock
0 srw-rw---- 1 root docker 0 Jul 14 09:10 /var/run/docker.sock
$ whoami
brandon
$ cat /etc/group | grep docker
docker:x:995:brandon
nvidia-docker:x:994:
BEARBEITEN:
Gruppeninformationen:
$ groups
brandon
$ groups brandon
brandon : brandon adm cdrom Sudo dip plugdev games lpadmin sambashare docker
$ whoami
brandon
Update
Seit dem ursprünglichen Beitrag, bei dem ich ein System von 17.04 auf 18.04 aktualisiert habe, habe ich zwei Upgrades von 16.04 auf 18.04 durchgeführt, und keines der späteren Systeme hatte das Problem. Es könnte also etwas mit dem Upgrade-Prozess von 17.04 auf 18.04 zu tun haben. Ich muss noch eine neue 18.04 Installation durchführen.
fügen Sie den Benutzer der Andockgruppe hinzu.
Sudo usermod -aG docker $USER
Sudo reboot
Sudo setfacl -m user:brandon:rw /var/run/docker.sock
kein Neustart erforderlich
Ich führe aus: Sudo docker run -it -p 8889: 8888 -v/home/Documents/pa1:/home/ucsddse230/work ucsddse230/cse255-dse230/bin/bash
und es funktioniert bei mir, vorausgesetzt:
ucsddse230 @ 50f69cc7cb0a: ~/work $
Ich habe die schnelle Lösung gemacht und es hat sofort funktioniert.
Sudo chmod 777 /var/run/docker.sock
Speziell für Ubuntu gibt es ein bekanntes Problem mit lightdm, das sekundäre Gruppen aus dem Benutzer entfernt, als Teil der GUI-Anmeldung. Sie können dieses Problem hier verfolgen: https://bugs.launchpad.net/lightdm/+bug/1781418
Sie können versuchen, lightdm auszuschalten oder die im Fehlerbericht erwähnte Problemumgehung anzuwenden:
[Kommentieren Sie die folgenden Zeilen aus /etc/pam.d/lightdm:]
auth optional pam_kwallet.so auth optional pam_kwallet5.so
Zu den temporären Optionen zählen das Anmelden an Ihrem Computer mit einem Befehl wie ssh oder su -l
oder Ausführen des Befehls newgrp docker
. Diese betreffen nur die aktuelle Shell und müssen bei jedem neuen Terminal erneut ausgeführt werden.
Außerhalb dieses Problems sind die allgemeinen Befehle, mit denen ein Benutzer direkten Zugriff auf den Docker-Socket (und damit den Root-Zugriff auf den Host) erhält, folgende Befehle:
Sudo usermod -aG docker $(id -un) # you can often use $USER in place of the id command
newgrp docker # affects the current Shell, logging out should affect all shells