Zainstalowałem Docker na moim komputerze, na którym mam system operacyjny Ubuntu. Po tym, jak zainstalowałem dokera, kiedy uruchamiam
sudo docker run hello-world
Wszystko w porządku, ale chcę ukryć słowo, sudo
aby skrócić polecenie.
Jeśli napiszę polecenie bez słowa sudo
docker run hello-world
Wyświetlane są następujące elementy:
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'.
Stało się tak samo, kiedy próbuję zrobić
docker-compose up
Jak mogę to rozwiązać?
docker
docker-compose
Carlos Andres
źródło
źródło
Odpowiedzi:
Jeśli chcesz uruchomić dokera jako użytkownik inny niż root, musisz dodać go do grupy dokerów.
Zaczerpnięte z oficjalnej dokumentacji dokera: manage-docker-as-a-non-root-user
źródło
sudo systemctl restart docker
docker
grupie zasadniczo zapewnia dostęp do konta root , bez wymuszania regularnych zasad sudo i audytu. Aby uzyskać szczegółowe informacje i dyskusję, zobacz numer GitHub nr 9976 .Po aktualizacji odmówiono mi pozwolenia. Wykonanie kroków po instalacji po instalacji „mkb” niczego nie zmieni, ponieważ mój użytkownik był już w grupie „dokerów”; Ponawiam to dwukrotnie w jakikolwiek sposób bez powodzenia.
Po godzinie wyszukiwania ostatecznie zadziałało następujące rozwiązanie:
Rozwiązanie pochodzi z Olszańska .
Wygląda na to, że uaktualnienie odtworzyło gniazdo bez wystarczającego pozwolenia dla grupy „dokerów”.
Problemy
Ten twardy chmod otwiera dziurę w zabezpieczeniach i po każdym ponownym uruchomieniu ten błąd zaczyna się od nowa i trzeba ponownie wykonać powyższe polecenie za każdym razem. Chcę rozwiązania raz na zawsze. Do tego masz dwa problemy:
1) Problem z
SystemD
: Gniazdo zostanie utworzone tylko z właścicielem „root” i grupą „root”.Możesz sprawdzić pierwszy problem za pomocą tego polecenia:
Jeśli wszystko jest dobre, powinieneś zobaczyć
root/docker
„nieroot/root
”.2) Problem z graficznym logowaniem : /superuser/1348196/why-my-linux-account-only-belongs-to-one-group
Możesz sprawdzić ten drugi problem za pomocą tego polecenia:
Jeśli wszystko jest w porządku, powinieneś zobaczyć grupę dokerów na liście. Jeśli nie, wypróbuj polecenie
jeśli widzisz, to grupa dokerów jest z powodu błędu.
Rozwiązania
Jeśli uda Ci się uzyskać obejście dla graficznego logowania, powinno to zrobić zadanie:
Ale jeśli nie możesz poradzić sobie z tym błędem, niezbyt złym rozwiązaniem może być:
Działa to, ponieważ jesteś w środowisku graficznym i prawdopodobnie jedynym użytkownikiem na komputerze. W obu przypadkach potrzebujesz ponownego uruchomienia (lub an
sudo chmod 666 /var/run/docker.sock
)źródło
:ro
końcówki ... jak tylko dodałem, że jestemźródło
newgrp
Komenda poproszony o hasło i nie akceptuje mojego hasła użytkownika. Zamiast tegosu - $USER
pracował, aby uniknąć wylogowania / zalogowania.docker
grupy/var/run/docker.sock
źródło
Rozwiązuję ten błąd za pomocą polecenia:
źródło
Zawsze możesz spróbować
Manage Docker as a non-root user
akapitu w https://docs.docker.com/install/linux/linux-postinstall/ docs.Po wykonaniu tej czynności, jeśli problem nadal występuje, możesz uruchomić następujące polecenie, aby go rozwiązać:
źródło
chmod 666
) jest katastrofą bezpieczeństwa ... Nigdy nie powinno się tego zalecać.To rozwiązało mój problem.
źródło
Aby rozwiązać ten problem, szukałem, gdzie jest zainstalowany doker i komponent dokowania. W moim przypadku
docker
został zainstalowany/usr/bin/docker
idocker-compose
został zainstalowany na/usr/local/bin/docker-compose
ścieżce. Następnie piszę to w moim terminalu:Aby dokować:
Do
docker-compose
:Teraz nie potrzebuję wpisywać w moich poleceniach dokera słowa
sudo
/ ************************************************* ************************ /
ERRATA:
Najlepsze rozwiązanie tego problemu skomentował @mkasberg. Cytuję komentarz:
That might work, you might run into issues down the road. Also, it's a security vulnerability. You'd be better off just adding yourself to the docker group, as the docs say. sudo groupadd docker, sudo usermod -aG docker $USER.
Docs:
https://docs.docker.com/install/linux/linux-postinstall/Wielkie dzięki!
źródło
docker
grupy, jak mówią doktorzy.sudo groupadd docker
,sudo usermod -aG docker $USER
.lightdm i kwallet są dostarczane z błędem, który wydaje się nie przekazywać grup dodatkowych podczas logowania. Aby rozwiązać ten problem, ja również
sudo usermod -aG docker $USER
musiałem się wypowiedziećdo
w
/etc/pam.d/lightdm
przed restartem komputera , za Döcker grupie rzeczywiście mieć wpływ.błąd: https://bugs.launchpad.net/lightdm/+bug/1781418 i tutaj: https://bugzilla.redhat.com/show_bug.cgi?id=1581495
źródło
użyj tego polecenia
następnie uruchom ponownie komputer, to zadziałało dla mnie.
źródło
Poważnie chłopaki. Nie dodawaj Dockera do swoich grup ani nie modyfikuj posixu gniazda (bez wzmacniającego SELinuksa), jest to prosty sposób na rootowanie privesc. Wystarczy dodać alias do .bashrc, jest to prostsze i bezpieczniejsze, ponieważ: alias dc = 'sudo docker'.
źródło
możesz wykonać następujące kroki, a to zadziała dla Ciebie:
sudo groupadd docker
sudo usermod -aG docker $USER
groups
newgrp docker
sudo chown root:docker /var/run/docker.sock
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
Po tym teście możesz uruchomić
docker ps -a
źródło
chown
dotyczy pliku docker.sock.Po zainstalowaniu dokera, utworzeniu grupy „dokowania” i dodaniu do niej użytkownika, edytuj plik jednostki usługowej dokera:
Dodaj dwie linie do sekcji [Service]:
Zapisz plik (Ctrl-X, y, Enter)
Uruchom i włącz usługę Docker:
źródło
Po instalacji Docker na Centos. Podczas uruchamiania komendy poniżej wystąpił błąd.
Zmień grupę i uprawnienia dla docker.socket
Sprawdź, używając poniższego polecenia dokera
źródło
sudo chmod 666 /var/run/docker.sock
pomogło mi to, gdy pojawiał się błąd nawet podczas logowania do dokera. Ale teraz działa to całkiem dobrze w moim systemie.
źródło