Śledzę ten link, aby utworzyć mój pierwszy obraz dokera i poszedł pomyślnie i teraz próbuję wypchnąć ten obraz do mojego repozytorium dokera z tego linku . Ale ilekroć próbuję wepchnąć ten obraz do repozytorium, pojawia się tego rodzaju błąd.
denied: requested access to the resource is denied
Czy ktoś mógłby dać mi wskazówkę dotyczącą tego problemu? Każda pomoc byłaby mile widziana.
Uwaga: udało mi się zalogować do dokera
docker
dockerfile
Keyur Shah
źródło
źródło
Odpowiedzi:
Przed wypchnięciem dokera może być konieczne przełączenie repo dokera na prywatne.
Dzięki odpowiedzi udzielonej przez Deana Wu i temu komentarzowi przez ses , pamiętaj, aby się wylogować , a następnie zalogować się z wiersza polecenia na swoje konto w centrum dokerów
Według dokumentów :
Oznacza to, że musisz otagować obraz przed pchnięciem:
i wtedy powinieneś być w stanie to popchnąć.
źródło
[host]/[namespace]/[repo]
i nadal ten sam błąd (co oznacza, że mam organizacje i moje konto jako przestrzeń nazw). Nawet próbowałemdocker login ...
. Nie mogę naciskać: - |Ten sam problem wystąpił podczas kursu dla początkujących dokerów. Rozwiązałem problem, wykonując
docker login
polecenie push przed dokerem.źródło
docker login
.sudo docker login
pracował dla mnie. To pozwoliło mi wypchnąć moje prywatne repozytorium.Miałem ten sam problem, ale zaakceptowana tutaj odpowiedź nie działała dla mnie. Spróbowałem kilku kroków i udało mi się w końcu to zrobić. Mam nadzieję, że to komuś pomoże.
Oto kroki, które zadziałały dla mnie:
1) Zaloguj się do dokera.
2) Oznacz swoją kompilację obrazu
nazywam się tutaj: mylocalimage i domyślnie ma tag: najnowszy,
a moja nazwa użytkownika to: sirimalla zarejestrowana w chmurze dokerów, i utworzyłem publiczne repozytorium o nazwie: dockerhub
więc moje osobiste repozytorium staje się teraz: sirimalla / dockerhub i chcę przesłać mój obraz tagiem:
myfirstimagepush
Oznaczono jako poniżej:
3) Wepchnąłem obraz do mojego osobistego repozytorium dokerów, jak poniżej
I z powodzeniem przeszedł na moje osobiste repozytorium dokerów.
źródło
docker login
. Do czasu przejścia do tego wątku nie wiedziałem o tymdocker login
.Ważne jest również, aby pamiętać, że kiedy tagujesz swój obraz, oznaczasz go za pomocą przestrzeni nazw, a następnie repozytorium / mydevrepo . Zdezorientowało mnie to, gdy śledziłem dokumenty Dockera. Następnie użyłem:
A potem wypchnąłem obraz za pomocą „otagowanej nazwy” .
źródło
Użyj poniższych poleceń:
np. mam publiczne repozytorium, takie jak manjeet86 / docker-repo, więc polecenia będą:
Tylko zobacz,
:
zamiast/
tego była sztuczka. Mi to pasuje. Nie wiem, czy pozwala ci to na tagowanie/
w miejscu,:
ale może to być w innym celu.https://docs.docker.com/engine/reference/commandline/tag/#examples
źródło
:
zamiast zamiast/
, dzięki.Sposób, w jaki doker obsługuje identyfikatory użytkowników i repozytoria, może być nieco mylący. Załóżmy, że tworzysz konto użytkownika xyz w centrum dokowania. Nowe konto automatycznie ustanawia przestrzeń nazw
xyz
. Następnie tworzysz repozytorium o nazwie myrepo. Nazwa repozytorium faktycznie będziexyz/myrepo
.Aby przesłać obraz, należy:
W razie potrzeby możesz dodać „: najnowsze” lub inny tag.
Jeśli pojawi się
requested access to the resource is denied
komunikat o błędzie:źródło
Nie jestem pewien, co się stało z hubem dokującym, ale żadne z opublikowanych rozwiązań nie działało dla mnie. Oto obejście, które zakończyło się dla mnie działaniem od stycznia 2018 r .:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE verse_gapminder_gsl latest 023ab91c6291 3 minutes ago 1.975 GB verse_gapminder latest bb38976d03cf 13 minutes ago 1.955 GB rocker/verse latest 0168d115f220 3 days ago 1.954 GB
docker tag bb38976d03cf dockhubusername/verse_gapminder:mytag
docker login docker.io
docker push dockhubusername/verse_gapminder:mytag
źródło
Docker ma również limit liczby prywatnych repozytoriów, które możesz mieć. Jeśli tworzysz prywatne repozytorium poprzez wypychanie z komputera lokalnego, utworzy ono repozytorium, ale nic więcej nie będzie można do niego wypchnąć ani wyciągnąć z niego, a otrzymasz błąd „odmówiono dostępu do zasobu”.
źródło
System operacyjny: Ubuntu16.04
Przyczyna: usunąłem plik konfiguracyjny klienta ( ~ / .docker / config.json )
Rozwiązanie:
restart dokera usługi .
login dokera - nazwa_użytkownika = twoja nazwa_dokrętu [email protected]
źródło
docker login https://index.docker.io/v1/ -u=yourusername
Moim problemem było po prostu użycie nieprawidłowych znaków (dodatkowe /) w nazwie mojego obrazu:
to nieprawidłowa nazwa obrazu. Spróbuj myusername / something-image. Mam nadzieję, że to komuś pomoże.
źródło
__
.Miałem dzisiaj ten sam problem. Jedyną rzeczą, która działała dla mnie, było jawne zalogowanie się do „docker.io” :
Próbowałem różnych innych nazw, a logowanie wydawałoby się działać, ale później spowodowałoby to następujący błąd.
źródło
docker login
bezskutecznie, ale wyraźnedocker.io
na końcu załatwiło sprawę.Byłem też z tym problemem, testowałem obecne rozwiązania tutaj, ale bezskutecznie, byłem poprawnie zalogowany, przynajmniej zgodnie z wynikami,
docker login
ale nadal nie mogłem przesuwać obrazu. W końcu zadziałało po prostu:docker logout
I
docker login
znowu było to takie trywialne. Nie jestem pewien, co się stało, ale wymuszenie ponownego logowania zadziałało.źródło
Jeśli napotkasz ten problem podczas korzystania z rejestru Azure Container Registry, możesz go rozwiązać, logując się najpierw do rejestru.
A następnie otaguj obraz, aby pasował do nazwy hosta rejestru.
A potem w końcu go popchnij.
źródło
Tym, którzy próbują wypchnąć obraz do własnego menedżera repozytorium Nexus, wykonaj następujące czynności:
1) Zaloguj się do menedżera repozytorium Nexus (port 8443 jest powiązany z określonym repozytorium hosta Docker)
2) Oznacz obraz swoim NEXUS SERVER IP / DNS
3) Naciśnij obraz
źródło
Zaloguj się z aplikacji. Próbowałem tylko z terminalu bez powodzenia.
To jest wersja 17.06.1
źródło
Proste rozwiązanie robocze:
Przejdź tutaj
https://hub.docker.com/
, aby utworzyć prywatną repozytorium z nazwą na przykładjohnsmith/private-repository
jest toNAME/REPOSITORY
będziesz używać dla obrazu podczas budowania wizerunku.Pierwszy,
docker login
Po drugie, używam „
docker build -t johnsmith/private-repository:01 .
” do tworzenia obrazu i używam „docker images
” do potwierdzenia obrazu utworzonego np. W tym żółtym polu poniżej: (przepraszam, nie mogę wkleić formatu tabeli, ale tylko ciąg tekstowy)docker push johnsmith/private-repository:01
Gotowy!
źródło
Moja odpowiedź jest związana z podobnymi problemami związanymi z platformą Azure DevOps, które miałem z następującym wspólnym potokiem (jest bardziej szczegółowy, ale może pomóc komuś zaoszczędzić czas):
Błąd, który otrzymałem podczas wypychania,
denied: requested access to the resource is denied
wysłał mnie tutaj.Uważaj na zmienną
$(Build.Repository.Name)
zawartą w nazwie obrazu. Domyślnie jest to nazwa repozytorium od github, ale aby działało, powinno działaćdockerhub_account_username/your_dockerhub_repository_name
.Wymień
$(Build.Repository.Name)
siędockerhub_account_username/your_dockerhub_repository_name
w polu Nazwa obrazu dla obu etapów budowania i pchania.Jest to potrzebne interfejsowi API dockerhub, aby wiedzieć, gdzie przesunąć obraz.
źródło
To działało po Zmieniłem „ doker logowanie https://hub.docker.com ” na " doker logowanie docker.io ” i pod warunkiem, nazwę użytkownika i hasło.
Następnie wykonaj poniższe polecenia:
UWAGA: „new-repo” będzie zawierać „Docker ID + nazwa repo”
Tutaj utworzyłem repozytorium „ubuntu” w Docker Hub przed uruchomieniem komendy poniżej.
Przykład:
źródło
Jeśli po tym nadal się nie powiedzie
docker login
, upewnij się, że repozytorium, do którego próbujesz wypchnąć, zostało utworzone.źródło
Mam też ten problem. Okazuje się, że korzystam z bezpłatnej warstwy i próbuję przekazać więcej niż 1 obraz w prywatnym repozytorium. Ustawienie 1 obrazu jako prywatnego, a reszty publicznego, działało dla mnie.
źródło
W moim przypadku naciskałem na organizację, w której pracuję w zespole, który ma uprawnienia administratora do repozytorium.
więc moje polecenie push brzmiało:
docker push org-name/image-name
Mógłbym z powodzeniem wypchnąć nazwę użytkownika / image-name, ale nie do organizacji. Potrójnie sprawdziłem uprawnienia. Nic nie działało.
Rozwiązaniem było usunięcie repozytorium z centrum dokowania i ponowne wypchnięcie go za pomocą:
docker push org-name/image-name
Jeśli chodzi o jego wartość, myślę, że repo zostało pierwotnie przekazane, zanim konto zostało przekształcone w organizację.
źródło
Tak więc, jeśli jest to pomocne dla każdego ...
Miałem ten sam problem i oto mój problem i FIX.
Potem próbowałem wypchnąć obraz do galaktyki z laptopa w sieci, więc zrobiłem to:
To dałoby mi błąd, który powiedziałby:
Co dziwne, rozwiązaniem tego problemu było zalogowanie się w następujący sposób:
Spowodowało to pomyślne logowanie.
Próbowałem więc przepchnąć obraz z laptopa do „galaktyki”.
Utworzyłem już tag dla mojego obrazu, który wyglądał tak:
Więc próbowałem to zrobić w ten sposób:
Na co otrzymałem odpowiedź:
Co dziwne, odkryłem, że poprawka polegała na tym, że najpierw oznaczyłem obraz w następujący sposób:
... a następnie wykonaj push w ten sposób:
Z jakiegoś powodu musiałem podać port w tagu jako wymaganą część nazwy repozytorium.
Mam nadzieję, że to pomaga innym.
źródło
wszystkie poprzednie odpowiedzi były poprawne, chcę tylko dodać informację, o której widziałem, że nie wspomniano;
Jeśli projekt jest projektem prywatnym, aby poprawnie przesłać obraz, należy skonfigurować osobisty token dostępu lub wdrożyć token z włączonym kluczem read_registry.
źródło: https://gitlab.com/help/user/project/container_registry#using-with-private-projects
mam nadzieję, że jest to pomocne (także jeśli pytanie zostało do tej pory opublikowane)
źródło
Ta odpowiedź dotyczy zarówno mojego przyszłego ja, jak i każdego innego. Dokładnie napotkałem ten problem, gdy jestem zalogowany poprawnie, ale próbuję wypchnąć repozytorium prywatne, gdy moja liczba prywatnych repozytoriów jest większa lub równa limitowi dozwolonemu przez mój plan.
Nie jestem do końca pewien, w jaki sposób udało mi się utworzyć zbyt wiele prywatnych repozytoriów, ale jeśli mój plan obejmuje 5 prywatnych repozytoriów, a jakoś mam 6, to jest to błąd, który otrzymam:
denied: requested access to the resource is denied
W moim przypadku możliwe jest, że skończyło mi się zbyt wiele prywatnych repozytoriów, ponieważ mam domyślną widoczność ustawioną na private:
W tym miejscu określasz, ile prywatnych repozytoriów możesz mieć:
Gdy podałem problematyczne repozytorium do publicznej wiadomości, problem stał się oczywisty:
źródło
Naprawdę mam nadzieję, że to pomoże komuś (kto szuka ostatecznych odpowiedzi jako pierwszy):
Ciągle próbowałem pisać
Zamiast
Ponieważ zrobiłem też mój tag w ten sposób:
... całe piekło się rozpadło.
Mam szczerą nadzieję, że nie powtórzysz mojego błędu. Zmarnowałem na to 30 minut ...
źródło
Powolnie dodaję jeszcze jedną odpowiedź, ale w zaakceptowanej odpowiedzi i pozostałych odpowiedziach
docker login
nie ma przypadku, aby rozwiązać problemy, które inni podają w komentarzach.Nacisk na
port
konieczność wpisania jest prawdopodobnie rozwiązaniem dla tych, którzy wciąż szukają.docker login
lubdocker login <private-repo-host>
może połączyć się bez problemu, ale jeśli przyjdzie czas na wypychanie obrazów, pojawi się ten sam błąd co OP.Oznacza to, że możesz podłączyć bez definiującego hosta lub portu i nadal uzyskać:
W moim przypadku używam wbudowanego rejestru dokowanego-rejestru GitLab, który został skonfigurowany do używania portu
4567
. Sprawdzanie, z jakiego portu należy uzyskać dostęp do rejestru, może być ryzykowne. Bez wskazania, że portdocker login <our.gitlab.host>
zaloguje się pomyślnie, ale przekaże ten sam problem, o który zapytał PO:Jeśli korzystasz z docker.io/dockerhub, prawdopodobnie nie będziesz mieć tego problemu, ale jeśli masz rozwiązanie hosta / rejestru prywatnego, prawdopodobieństwo wzrasta, musisz jawnie zalogować się przy użyciu hosta i portu dla rejestru dokera .
źródło
Nie wolno wprowadzać w błąd w kierunku nazwy znacznika.
Moje podejście do rozwiązania tego:
Wynik:
Wynik:
Mylące jest Tag, upewnij się, że to rozumiesz.
źródło
najłatwiej jest użyć pulpitu dokującego (dla Windows 10 lub nowszego i Mac)
pierwsza rejestracja w hubie dokowania poprzez podanie dockerID
następnie kliknij ikonę pulpitu dokującego na swoim komputerze i -> Preferencje -> następnie zaloguj się do niego za pomocą dokera / identyfikatora i hasła centrum dokującego.
źródło
zmień nazwę obrazu na nazwę użytkownika / znacznik dokowania nazwa-obrazu twój-bieżący-obraz / bieżący-obraz dokera-nazwa_użytkownika / some-name: twój-znacznik (przykład: najnowszy)
źródło
Spróbuj wylogować się z aplikacji „Docker dla Windows” i wylogować się z witryny https://hub.docker.com/, a następnie wykonać „logowanie dokera ” i „push dokera ”. Pomogło mi to.
źródło