Napotkałem podobny problem, który jest problemem z uprawnieniami, a przyczyną tego problemu jest to, że demon / serwer Docker zawsze działa jako rootuż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, roota 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 dockerna wyświetlonej liście, musisz ją utworzyć:
sudo groupadd docker
Następnie potwierdź swoje useri swoje, groupużywając poniższego polecenia:
cat /etc/group
Przewiń, aby zobaczyć grupę dla Dockera. Powinien mieć ten format
docker:x:140:promisepreston
gdzie dockerjest mój groupi promiseprestonjest 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-commandnazwą 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