Używam Dockera w systemie Windows i kiedy próbowałem pobrać obraz PHP za pomocą tego polecenia
$ docker pull php
Otrzymałem wiadomość:
Using default tag: latest
latest: Pulling from library/php no matching manifest for windows/amd64
in the manifest list entries
Jak mogę rozwiązać ten problem?
Odpowiedzi:
Miałem ten sam problem w systemie Windows 10. Pominąłem go, uruchamiając demona Dockera w trybie eksperymentalnym:
"experimental": true
źródło
--experimental
funkcji binarnejPrzyczyn tego błędu może być wiele. Ale najbardziej oczywistym powodem tego błędu jest użycie kontenera systemu Windows w trybie kontenera systemu Linux lub odwrotnie.
źródło
Jesteś w trybie kontenera systemu Windows. Jeśli więc nie masz pewności, czy obraz, który chcesz pobrać, jest zbudowany dla architektury Windows , musisz przejść na kontenery Linuksa.
źródło
Inny możliwy sposób:
W zasobniku systemowym kliknij prawym przyciskiem myszy ikonę Dockera, a następnie kliknij
Switch to Linux containers
.(Docker dla Windows, Community Edition, wersja 18.03.1)
źródło
W moim przypadku chodziło o to, że wersja systemu operacyjnego Windows, na którym pracowałem, nie obsługiwała tagu, który próbowałem wyciągnąć. Wykorzystanie starszego tagu pozwoliło mi to zadziałać.
Konkretnie:
docker pull mcr.microsoft.com/windows/nanoserver:1903
błędniedocker pull mcr.microsoft.com/windows/nanoserver:1803-amd64
pracowałźródło
Wersja: Windows 10
Krok 1: Kliknij prawym przyciskiem myszy wystąpienie Dockera i przejdź do Ustawień
Krok 2: Podstawowy na zaawansowany i ustawienie „eksperymentalnej”: prawda
Krok 3: Uruchom ponownie Docker
Krok 4: Instalacja pliku dockerfile powiodła się (np. Kompilacja docker -t williehao / cheers2019.)
źródło
Najpierw musisz skorzystać z platformy Linux, a następnie możesz uruchomić w systemie Windows:
Zobacz wpis na blogu Docker for Windows Desktop 18.02 z aktualizacją Windows 10 Fall Creators Update .
źródło
--platform
flaga też działa. Chociaż może ponownie pobrać rzeczy.Rozwiązałem to w Windows 10, uruchamiając w Admin Powershell:
I wtedy:
źródło
Rozważ aplikacje, które pobierasz - czy są one oparte na systemie Windows? Jeśli nie, musisz uruchomić kontener Linux.
Bez korzystania z trybu eksperymentalnego możesz używać Dockera tylko w jednym stylu kontenera w porównaniu z drugim. Jeśli aktywujesz tryb eksperymentalny, jak wspomniano powyżej, możesz używać kontenerów Windows i Linux zgodnie z wymaganiami aplikacji, które pobierasz w pliku redagowania.
Kluczowa uwaga: eksperymentalna - wciąż w fazie rozwoju przez Docker.
źródło
Może się to zdarzyć nie tylko z powodu kontenerów okiennych!
Obecnie wszystkie obrazy dockera Node.Js nie są rozwijane. Zawsze sprawdzaj obraz, który próbujesz wyciągnąć wcześniej.
Powiązany problem z Githubem
źródło
Wygląda na to, że „docker pull” nie działa w systemie Windows 10 # 1100
Jeśli dodanie
--experimental
nie zadziała, rozważ ponowną instalację dockera dla systemu Windows .źródło
experimental
działa, dzięki ... Dlaczego tak jest?Otrzymuję ten błąd w moim potoku Azure DevOps.
Problem polegał na tym, że wybrałem hostowany VS2017 zamiast hostowanego Ubuntu . Po zmianie tego samego, co poniżej, kompilacja zakończyła się sukcesem.
Mam nadzieję, że to pomoże.
źródło
docker uruchamia mcr.microsoft.com/windows/servercore:ltsc2016
wypróbuj powyższe polecenie. to, co pobierasz, powinno być zgodne z podstawową wersją systemu Windows, w której się znajdujesz. Powyższe będzie działać, jeśli jesteś w systemie Windows Server 2016.
śledź ten wątek, aby uzyskać więcej informacji
https://github.com/docker/for-win/issues/3761
źródło
Kliknij prawym przyciskiem myszy instancję Dockera Idź do Ustawienia Demon Zaawansowane Ustaw opcję „Experimental”: true Restart Docker
źródło
Wycofanie tagu „najnowsze”
Wycofujemy tag „najnowsze” we wszystkich naszych podstawowych obrazach systemu Windows, aby zachęcić do lepszych praktyk dotyczących kontenerów. Na początku roku kalendarzowego 2019 nie będziemy już publikować tagu ; Wyciągniemy go z listy dostępnych tagów.
Zdecydowanie zachęcamy do zadeklarowania konkretnego tagu kontenera, który chcesz uruchomić w środowisku produkcyjnym. Znacznik „najnowsze” jest przeciwieństwem określonego; nie mówi użytkownikowi niczego o wersji kontenera, poza nazwą obrazu. Możesz przeczytać więcej o zgodności wersji i wyborze odpowiedniego tagu w naszych dokumentach kontenerów .
https://techcommunity.microsoft.com/t5/containers/windows-server-2019-now-available/ba-p/382430#
źródło
Miałem ten sam problem, aby uruchomić obraz Windows IIS za pomocą dockera dla Windows. Czytając powyższą odpowiedź Mohammada Trabelsiego zdałem sobie sprawę, że aby rozwiązać mój problem, musiałem zmienić moje kontenery (na docker) na kontenery Windows.
Aby to zrobić:
źródło
W systemie Windows należy edytować plik daemon.json lub windows-daemon-options.json, domyślna lokalizacja pliku konfiguracyjnego w systemie Windows to% programdata% \ docker \ config \ daemon.json lub% programdata% \ docker \ resources \ windows -daemon-options.json
Opcjonalne funkcje pól w pliku json umożliwiają użytkownikom włączanie lub wyłączanie określonych funkcji demona. Przykład: {"features": {"buildkit": true}} włącza buildkit jako domyślny kreator obrazów dockera.
źródło
Powód, dla którego wyświetla ten komunikat, ponieważ nie może znaleźć uruchomionych kontenerów Linuksa. Dlatego przed uruchomieniem upewnij się, że przełączasz się z systemu Windows na kontenery systemu Linux.
źródło
Dla mnie to z powodu odmowy dostępu do C: \ ProgramData \ Docker \ config \ daemon.json Po naprawieniu to teraz działa. Możesz spróbować przełączyć się na kontenery Linuksa i wrócić. Jeśli nie ma problemu z przełączaniem, to działa z uprawnieniem dostępu.
źródło
W moim przypadku musiałem najpierw zaktualizować system Windows , po czym problem zniknął.
źródło