Napotkałem podobny problem, który jest problemem z uprawnieniami, a przyczyną tego problemu jest to, że demon / serwer Docker zawsze działa jako root
użytkownik i chce, abyś zawsze poprzedzał polecenie docker sudo
.
Demon Dockera wiąże się z gniazdem Unix zamiast portu TCP. Domyślnie to gniazdo Unix jest własnością użytkownika, root
a inni użytkownicy mogą uzyskać do niego dostęp tylko za pomocą sudo
.
Aby to naprawić, oto co zadziałało dla mnie:
Najpierw sprawdź, czy masz już utworzoną grupę docker:
cat /etc/group
Jeśli nie znajdziesz docker
na wyświetlonej liście, musisz ją utworzyć:
sudo groupadd docker
Następnie potwierdź swoje user
i swoje, group
używając poniższego polecenia:
cat /etc/group
Przewiń, aby zobaczyć grupę dla Dockera. Powinien mieć ten format
docker:x:140:promisepreston
gdzie docker
jest mój group
i promisepreston
jest mójuser
Teraz możemy dodać użytkownika do grupy docker
Tylko dla plików kontenerów platformy Docker:
Skopiuj i uruchom poniższe polecenie w swoim terminalu dokładnie tak, jak jest podane, bez modyfikowania go w żaden sposób, niezależnie od obrazu / kontenera / polecenia dockera, które chcesz uruchomić lub próbujesz uruchomić, lub jest to przypadek problemu z uprawnieniami:
sudo usermod -aG docker $USER
Po uruchomieniu powyższego polecenia musisz się wylogować i zalogować ponownie, aby ponownie ocenić członkostwo w grupie. Jednak w systemie Linux możesz również uruchomić następujące polecenie poniżej, aby aktywować zmiany w grupach ( Skopiuj i uruchom poniższe polecenie w terminalu dokładnie tak, jak jest podane, bez modyfikowania go w żaden sposób, niezależnie od obrazu / kontenera / polecenia dockera, które chcesz uruchomić lub próbujesz uruchomić, lub jest przyczyną problemu z uprawnieniami ):
newgrp docker
Możesz teraz sprawdzić, czy możesz uruchamiać polecenia dockera bez uprawnień sudo, uruchamiając ponownie polecenie, które powoduje problem z uprawnieniami, powiedzmy ( Zastąp my-command
nazwą obrazu / kontenera / polecenia ):
docker run my-command
W przypadku plików Dockera i lokalnego systemu plików:
Jeśli masz kopię plików w lokalnym systemie plików, możesz zmienić prawo własności do katalogu aplikacji, w którym przechowywane są pliki aplikacji, używając następującego formatu:
sudo chown <your_user>:<your_group> -R my-app-directory/
Więc w moim przypadku będzie to:
sudo chown promisepreston:docker -R my-app-directory/
Uwaga: uruchom to polecenie w katalogu nadrzędnym, w którym znajduje się katalog aplikacji.
To wszystko.
mam nadzieję, że to pomoże