Důvod:Chybová zpráva znamená, že aktuální uživatel nemůže získat přístup k modulu dockeru, protože uživatel nemá dostatečná oprávnění pro přístup k soketu UNIX pro komunikaci s modulem.
Rychlá oprava:
-
Spusťte příkaz jako root pomocí sudo.
sudo docker ps
-
Změňte oprávnění /var/run/docker.sock pro aktuálního uživatele.
sudo chown $USER /var/run/docker.sock
Pozor :Spuštění sudo chmod 777 /var/run/docker.sock vyřeší váš problém, ale otevře docker socket pro každého, což je bezpečnostní chyba, jak poukázal @AaylaSecura. Proto by neměl být používán, s výjimkou testovacích účelů v místním systému.
Trvalé řešení:
Přidejte aktuálního uživatele do skupiny dockerů.
sudo usermod -a -G docker $USER
Poznámka:Aby se změny projevily, musíte se odhlásit a znovu přihlásit.
Další informace o správě Dockeru jako uživatele bez oprávnění root naleznete v tomto blogu.
Pro nové uživatele příkazu:
$ sudo usermod -aG docker $USER
musí mít $USER
definované ve vašem shellu. Toto je často ve výchozím nastavení, ale možná budete muset nastavit hodnotu na své přihlašovací ID v některých shellech.
Změna skupin uživatele nezmění existující přihlášení, terminály a shelly, které má uživatel otevřená. Chcete-li se vyhnout opětovnému přihlášení, můžete jednoduše spustit:
$ newgrp docker
získat přístup k této skupině ve vašem aktuálním prostředí.
Jakmile to uděláte, uživatel má efektivně root přístup k serveru, takže to dělejte pouze pro uživatele, kterým důvěřujete s neomezeným přístupem sudo.