Docker: "nessun manifest corrispondente per windows / amd64 nelle voci dell'elenco manifest"


152

Uso Docker su Windows e quando ho provato a estrarre un'immagine PHP con questo comando

$ docker pull php

Ho ricevuto questo messaggio:

Using default tag: latest
latest: Pulling from library/php no matching manifest for windows/amd64 
        in the manifest list entries

Come posso risolvere questo problema?


5
Per aiutare gli altri, mi sono imbattuto in questo errore durante la creazione dell'immagine per Linux come sistema operativo di base .... Il motivo di questo errore è stato impostato per i contenitori Windows, quindi sono passato ai contenitori Linux e poi ha iniziato a funzionare ...
Abhishek Jain

Inoltre, per i posteri: ho ottenuto questo edificio un contenitore di Windows. Anche se sono passato a Windows, sembra che sia tornato a Linux. La modifica in Windows ha risolto il problema.
John MacIntyre,

Risposte:


217

Ho avuto lo stesso problema su Windows 10. L'ho ignorato eseguendo il demone Docker in modalità sperimentale:

  1. Fare clic con il tasto destro sull'icona Docker nella barra delle applicazioni di Windows
  2. Vai su Impostazioni
  3. Demone
  4. Avanzate
  5. Impostare il "experimental": true
  6. Riavvia Docker

6
Come si fa clic con il tasto destro sull'istanza Docker? È l'icona Docker nella barra delle applicazioni di Windows?
Peter Mortensen,

2
@PeterMortensen esatto, è l'icona Docker nella barra delle applicazioni
benscabbia

Oltre alle risposte precedenti, ho anche dovuto rimuovere l'attributo "sola lettura" del mio C: \ WINDOWS \ System32 \ drivers \ etc \ hosts.etc
Thiago Custodio

3
Su Windows, è possibile individuare il file di configurazione direttamente in '% programdata% \ docker \ config \ daemon.json' e impostare qui gli attributi.
NemyaNation

1
Se stai eseguendo il dock (demone) dalla --experimentalfunzione di utilizzo binario standalone
Anwar

92

Potrebbero esserci molte ragioni per questo errore. Ma la ragione più ovvia di questo errore sta usando il contenitore di Windows in modalità contenitore di Linux o viceversa.

  1. Fare clic sull'icona Docker nella barra delle applicazioni nel menu contestuale
  2. Fai clic su "Passa al contenitore Window / Linux"
  3. Opzione Fare clic sul pulsante Cambia nella finestra di dialogo Cambia
  4. Potrebbe volerci poco tempo
  5. Assicurarsi che Docker stia funzionando ora

Finestra di dialogo Cambia modalità contenitore


3
Risolve il mio problema su "nessun manifest corrispondente per windows / amd64"
winlinux,

1
si dovrebbe rispondere a questa domanda stackoverflow.com/questions/56005151/...
XPTO

1
Ha funzionato per me con il problema "nessun manifest corrispondente per windows / amd64 10.0.17134 nelle voci dell'elenco manifest"
Amna,

Questa risposta è irrilevante per il contenitore di Windows. Funziona solo se il requisito del contenitore è Linux Container. Si prega di fare riferimento alla risposta di @ benscabbia.
Junnyea

86

Sei in modalità contenitore Windows. Quindi, se non sei sicuro che l'immagine che vuoi estrarre sia costruita per l'architettura Windows , devi passare ai container Linux.


1
L'alternativa (che ho anche scoperto di funzionare) è nella risposta di Chuck
Peter Mortensen,

3
Questo ha risolto il problema. Stavo usando la piattaforma Windows 10.
somnathchakrabarti

una volta che non riesce a cambiare? è un modo per aggirare
Tiago Medici il

1
Se passi a container Linux, sarai in grado di ospitare applicazioni Windows in Docker? Ad esempio utilizzando IIS e MySQL sulla stessa istanza Docker.
webworm il

@webworm poiché c'è anche MySQL per Windows, perché usare una versione Linux quando si desidera mescolarla con IIS e non usare solo la sua versione Windows?
George Birbilis,

35

Un altro modo possibile per farlo:

Nella barra delle applicazioni, fare clic con il tasto destro sull'icona della finestra mobile, quindi fare clic su Switch to Linux containers.

(Docker per Windows, Community Edition, versione 18.03.1)


30

Nel mio caso, la versione del sistema operativo Windows in uso non supportava il tag che stavo cercando di estrarre. L'utilizzo di un tag più vecchio mi ha permesso di farlo funzionare.

In particolare:

docker pull mcr.microsoft.com/windows/nanoserver:1903 con errori

docker pull mcr.microsoft.com/windows/nanoserver:1803-amd64 lavorato


Questo! Microsoft ha cambiato lì qualcosa rispetto alle vecchie immagini (servercore / nanoserver). Ora, devi cercare la versione di Windows del sistema per cui stai distribuendo e scegliere l'immagine di base di conseguenza.
JustCoding il

1
Grazie mille Joedragons!
rishi jain,

Bella risposta! Questo ha funzionato per me su Windows 10 seguendo questo tutorial docs.microsoft.com/en-us/virtualization/windowscontainers/…
user1299379

Ha funzionato anche per me. Ma significa che devo avere questo approccio quando tiro ogni immagine, per esempio ciao-mondo?
Mandroid

@Mandroid Sarei interessato alle tue scoperte, ma alcune immagini sembravano funzionare e altre no nel mio caso, quindi immagino che sia molto specifico per l'installazione. ad esempio se hai una patch di Windows può variare da un'altra.
joedragons,

21

Versione: Windows 10

Passaggio 1: fare clic con il pulsante destro del mouse sull'istanza Docker e vai su Impostazioni
inserisci qui la descrizione dell'immagine

Passaggio 2: da base ad avanzato e impostazione "sperimentale": vero inserisci qui la descrizione dell'immagine

Passaggio 3: riavviare la finestra mobile
inserisci qui la descrizione dell'immagine

Passaggio 4: l'installazione del file docker ha esito positivo (ad es. Docker build -t williehao / cheers2019). inserisci qui la descrizione dell'immagine



6

Ho risolto questo problema in Windows 10 eseguendo nell'amministratore Powershell:

cd "C:\Program Files\Docker\Docker"

E poi:

./DockerCli.exe -SwitchDaemon

3

Considera le applicazioni che stai estraendo: sono basate su Windows? In caso contrario, è necessario eseguire un contenitore Linux.

Senza utilizzare la modalità sperimentale, è possibile utilizzare Docker solo in uno stile di contenitore rispetto all'altro. Se si attiva la modalità sperimentale come menzionato sopra, è possibile utilizzare i contenitori Windows e Linux come richiesto dalle applicazioni che si stanno estraendo nel file di composizione.

Nota chiave: Sperimentale - ancora in sviluppo da Docker.


3

Questo potrebbe non accadere solo a causa dei contenitori di Windows!

Oggi tutte le immagini della finestra mobile Node.Js non sono visualizzabili. Controlla sempre l'immagine che stai cercando di estrarre prima.

Problema relativo a Github


3

Questo sembra che "docker pull" fallisca in Windows 10 # 1100

Se l'aggiunta --experimentalnon funziona, prendere in considerazione la reinstallazione della finestra mobile per Windows .


L'aggiunta di "sperimentale: vero" non ha funzionato per me, quindi ho pensato di provare a passare al contenitore Linux prima di reinstallare la finestra mobile e ha funzionato.
Yogescicak,

In ambiente Windows, verificare anche se il servizio di gestione della macchina virtuale Hyper-V è in esecuzione, quindi dopo aver installato la finestra mobile, passare alla modalità contenitori Linux.
Junior Mayhé,

Aggiunta di experimentalopere, grazie ... Perché è così?
Angshuman Agarwal,

@AngshumanAgarwal L'utilizzo di funzionalità sperimentali ( docs.docker.com/docker-for-windows/#command-line ) aggiunge i driver ( github.com/docker/cli/blob/master/experimental/… ) che potrebbero essere necessari per l'utilizzo di Docker per Finestre.
VonC,

Vedo, grazie per quello. Ma vedo ancora problemi con Windows 10. Doc dice che Docker funziona in modo nativo, ma non sembra. Ho dovuto passare a "contenitori Linux" su Windows 10 per far funzionare le cose.
Angshuman Agarwal,

2

Stavo ottenendo questo errore nella mia pipeline DevOps di Azure.

Step 1/7 : FROM nginx:alpine
alpine: Pulling from library/nginx
no matching manifest for windows/amd64 10.0.14393 in the manifest list entries
##[error]C:\Program Files\Docker\docker.exe failed with return code: 1
##[section]Finishing: Build an image

Il problema era che avevo selezionato Hosted VS2017 anziché Hosted Ubuntu . Dopo aver cambiato lo stesso come segue, la compilazione ha avuto esito positivo.

inserisci qui la descrizione dell'immagine

Spero che sia d'aiuto.



2

Fare clic con il tasto destro del mouse su Istanza Docker Vai a Impostazioni Daemon Avanzate Imposta "sperimentale": true Riavvia Docker

 {
      "registry-mirrors": [],
      "insecure-registries": [],
      "debug": true,
      "experimental": true
    }

2

Deprecando il tag "più recente"

Stiamo deprecando il tag "più recente" in tutte le nostre immagini di base di Windows per incoraggiare pratiche di container migliori. All'inizio dell'anno solare 2019, non pubblicheremo più il tag  ; Lo strapperemo dall'elenco dei tag disponibili.

Abbiamo fortemente consigliamo di dichiarare invece il tag contenitore specifico vuoi per l'esecuzione in produzione. Il tag 'latest' è l'opposto di specifici; non dice nulla all'utente su quale versione del contenitore sia effettivamente separata dal nome dell'immagine. Puoi leggere ulteriori informazioni sulla compatibilità delle versioni e selezionare il tag appropriato nei nostri documenti del contenitore .

https://techcommunity.microsoft.com/t5/containers/windows-server-2019-now-available/ba-p/382430#


1

Ho avuto lo stesso problema per eseguire l'immagine IIS di Windows usando la finestra mobile per Windows. Leggendo la risposta di Mohammad Trabelsi sopra mi sono reso conto che per risolvere il mio problema avevo bisogno di cambiare i miei contenitori (sulla docker) per i contenitori di Windows.

Per fare questo:

  1. Fare clic con il tasto destro del mouse sull'istanza Docker
  2. Seleziona "Passa ai contenitori di Windows ..."

1

Su Windows è necessario modificare il file daemon.json o windows-daemon-options.json, il percorso predefinito del file di configurazione su Windows è% programdata% \ docker \ config \ daemon.json o% programdata% \ docker \ resources \ windows -daemon-options.json

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Le funzioni di campo opzionali sul file json, consentono agli utenti di abilitare o disabilitare funzionalità specifiche del demone. Esempio: {"features": {"buildkit": true}} abilita buildkit come generatore di immagini docker predefinito.


0

Il motivo per cui viene visualizzato questo messaggio perché non è in grado di trovare i contenitori Linux in esecuzione. Quindi, assicurati di passare da Windows ai container Linux prima di eseguirlo.


0

Per me, è a causa dell'accesso negato a C: \ ProgramData \ Docker \ config \ daemon.json Dopo averlo risolto ora funziona. Puoi provare a passare ai container Linux e tornare indietro. Se non si verificano problemi con la commutazione, funziona con l'autorizzazione di accesso.


0

Nel mio caso ho dovuto aggiornare Windows prima, dopo di che il problema è andato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.