Docker: “bildirim listesi girişlerinde windows / amd64 için eşleşen bildirim yok”


151

Windows'ta Docker kullanıyorum ve bu komutla bir PHP görüntüsü çekmeye çalıştığımda

$ docker pull php

Bu mesajı aldım:

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

Bu sorunu nasıl düzeltebilirim?


5
Diğerlerine yardım etmek için, temel işletim sistemi olarak linux için görüntü oluştururken bu hataya girdim .... Bu hatanın nedeni, Windows kapları için ayarlanmış olmasıydı, bu yüzden Linux kaplarına geçtim ve çalışmaya başladı ...
Abhishek Jain

Ayrıca, gelecek nesiller için: Bu binayı bir Windows konteyneri aldım. Windows'a geçmeme rağmen Linux'a geri dönmüş gibi görünüyor. Windows'a geri değiştirmek sorunu çözdü.
John MacIntyre

Yanıtlar:


215

Windows 10'da da aynı sorunu yaşadım. Docker arka plan programını deneysel modda çalıştırarak atladım:

  1. Windows Sistem Tepsisindeki Docker simgesini sağ tıklayın
  2. Ayarlar'a gidin
  3. şeytan
  4. ileri
  5. Yı kur "experimental": true
  6. Docker'ı yeniden başlat

6
Docker örneğini sağ tıklatıyorsunuz? Windows'un görev çubuğundaki Docker simgesi mi?
Peter Mortensen

2
@PeterMortensen doğru, görev çubuğundaki Docker simgesi
benscabbia

Önceki cevapları Ayrıca, ben de benim C özelliğini "salt okunur" kaldırmak zorunda: \ WINDOWS \ System32 \ sürücüleri \ vb \ hosts.etc
Thiago Custodio

3
Windows'ta, yapılandırma dosyasını doğrudan '% programdata% \ docker \ config \ daemon.json' adresinde bulabilir ve özellikleri orada ayarlayabilirsiniz.
NemyaNation

1
Bağımsız ikili kullanım --experimentalözelliğinden sabitlenmiş (daemon) kullanıyorsanız
Anwar

91

Bu hatanın birçok nedeni olabilir. Ancak bu hatanın en belirgin nedeni, Windows Container Linux'u Linux Container Mode'da kullanmaktır.

  1. Bağlam Menüsünde Sistem Tepsisindeki Docker Simgesi'ni tıklatın
  2. "Pencereye / Linux Kapsayıcısına Geç" e tıklayın
  3. Seçenek İletişim Kutusunda Anahtar Düğmesine Tıklayın
  4. Biraz zaman alabilir
  5. Docker'ın Şimdi Durumu Çalıştığından Emin Olun

Kapsayıcı Modunu Değiştir İletişim Kutusu


3
"Windows /
AMD64

1
bu soruya cevap
vermelisiniz

1
Benim için 'bildirim listesi girişlerinde windows / amd64 10.0.17134 için eşleşen bildirim yok' sorunu ile çalıştı
Amna

86

Windows kapsayıcı modundasınız. Bu nedenle, çekmek istediğiniz görüntünün Windows mimarisi için oluşturulduğundan emin değilseniz , Linux kapsayıcılarına geçmeniz gerekir.


1
(Ayrıca çalıştığını bulduğum) alternatifi chuck cevabında
Peter Mortensen

3
Bu sorunu çözdü. Windows 10 platformunu kullanıyordum.
somnathchakrabarti

bir kez geçiş başarısız olur? bu yolda bir iş
Tiago Medici

1
Linux Kapsayıcılarına geçiş yaparsanız Docker içinde Windows uygulamalarını barındırabilecek misiniz? Örneğin, aynı Docker örneğinde IIS ve MySQL kullanma.
webworm

@Webworm, Windows için de MySQL olduğundan, sadece Windows sürümünü değil, IIS ile karıştırmak istediğinizde neden bir Linux sürümü kullanıyorsunuz?
George Birbilis

35

Bunu yapmanın başka bir yolu:

Sistem tepsisinde docker simgesine sağ tıklayın, ardından Switch to Linux containers .

(Windows için Docker, Community Edition, sürüm 18.03.1)


30

Benim durumumda, üzerinde çalıştığım Windows işletim sistemi sürümünün çekmeye çalıştığım etiketi desteklemiyor olmasıydı. Daha eski bir etiket kullanmak bunu yapmamı sağladı.

özellikle:

docker pull mcr.microsoft.com/windows/nanoserver:1903 Hatalı

docker pull mcr.microsoft.com/windows/nanoserver:1803-amd64 işlenmiş


Bu! Microsoft, eski görüntülere (servercore / nanoserver) göre bir şey değiştirdi. Şimdi, konuşlandırdığınız sistemin Windows sürümünü aramanız ve buna göre temel resmi seçmeniz gerekir.
JustCoding

1
Çok teşekkürler Joedragons!
rishi jain

Güzel cevap! Bu, bu öğreticiyi izleyerek
user1299379

Benim için de işe yaradı. Fakat bu, örneğin merhaba dünya gibi her görüntüyü çektiğimde bu yaklaşıma sahip olmam gerektiği anlamına mı geliyor?
Mandroid

@Mandroid Bulgularınızla ilgilenirim, ancak bazı görüntüler işe yaramış gibi görünüyor ve bazıları benim durumumda değildi, bu yüzden çok kuruma özgü olduğunu tahmin ediyorum. örneğin bir Windows yamanız varsa diğerinden farklı olabilir.
joedragons

21

Sürüm: Windows 10

1. Adım: Docker örneğini sağ tıklayın ve Ayarlar'a gidin
resim açıklamasını buraya girin

2. Adım: Temelden İleri Düzeye ve "deneysel" ayarı: doğru resim açıklamasını buraya girin

3. Adım: Docker'ı yeniden başlatın
resim açıklamasını buraya girin

Adım 4: Dockerfile'ı yüklemek başarılı (ör: docker build -t williehao / cheers2019.) resim açıklamasını buraya girin



6

Yönetici Powershell'de çalışarak Windows 10'da bunu çözdüm:

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

Ve sonra:

./DockerCli.exe -SwitchDaemon

3

Çektiğiniz uygulamaları düşünün - bunlar Windows tabanlı mı? Değilse, bir Linux kapsayıcısı çalıştırmanız gerekir.

Deneysel modu kullanmadan Docker'ı yalnızca bir kapsayıcı stilinde ve diğerinde kullanabilirsiniz. Deney modunu yukarıda belirtildiği gibi etkinleştirirseniz, oluşturma dosyasında çektiğiniz uygulamaların gerektirdiği şekilde Windows ve Linux kapsayıcılarını kullanabilirsiniz.

Anahtar not: Deneysel - Docker tarafından hala geliştirilmektedir.


3

Bu sadece pencere kapları nedeniyle meydana gelmeyebilir!

Bugün tüm Node.Js docker görüntüleri pullable değildir. Her zaman daha önce çekmeye çalıştığınız görüntüyü kontrol edin.

İlgili Github-Sayı


3

Windows 10 # 1100 "docker çekme" başarısız gibi görünüyor

Ekliyorsanız --experimentaldeğil çalışır, düşünün pencereler için liman işçisi yeniden yükleme .


"Deneysel: doğru" eklemek benim için işe yaramadı, bu yüzden docker'ı yeniden yüklemeden önce Linux kapsayıcısına geçmeyi denediğimi düşündüm ve işe yaradı.
yogescicak

Windows ortamında, Hyper-V Sanal Makine Yönetimi hizmetinin çalışıp çalışmadığını da kontrol edin, ardından docker'ı yükledikten sonra Linux kapsayıcıları moduna geçirin.
Junior Mayhé

experimentalİşler ekliyorum , teşekkürler ... Neden böyle?
Angshuman Agarwal

@AngshumanAgarwal Deneysel özellikleri kullanma ( docs.docker.com/docker-for-windows/#command-line ) sürücüler ekler ( için gerekli olabilecek github.com/docker/cli/blob/master/experimental/… ). Pencereler.
VonC

Anladım, bunun için teşekkürler. Ancak, hala Windows 10 ile ilgili sorunlar görüyorum. Doc, Docker'ın yerel olarak çalıştığını söylüyor, ancak öyle görünmüyor. İşleri yürütmek için Windows 10'da "Linux kapsayıcılarına" geçmek zorunda kaldım.
Angshuman Agarwal

2

Bu hatayı Azure DevOps kanalımda alıyordum.

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

Sorun Barındırılan Ubuntu yerine Barındırılan VS2017 seçmişti . Aşağıdaki gibi değiştirdikten sonra yapı başarılı oldu.

resim açıklamasını buraya girin

Umarım yardımcı olur.



2

Docker örneğine sağ tıklayın Ayarlar Daemon Advanced'e gidin "experimental" seçeneğini ayarlayın: true Docker'ı yeniden başlatın

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

2

'En son' etiketi kullanımdan kaldırılıyor

Daha iyi kapsayıcı uygulamalarını teşvik etmek için tüm Windows temel resimlerimizde 'en yeni' etiketini kullanımdan kaldırıyoruz. 2019 takvim yılının başında artık etiketi yayınlamayacağız  ; Mevcut etiketler listesinden çekeceğiz.

Bunun yerine, üretimde çalıştırmak istediğiniz belirli kap etiketini bildirmenizi önemle tavsiye ederiz. 'En son' etiketi spesifik olanın tersidir; kullanıcıya, konteynerin gerçekte resim adından başka hangi sürümde olduğu hakkında hiçbir şey söylemez. Sürüm uyumluluğu ve kapsayıcı belgelerimizde uygun etiketi seçme hakkında daha fazla bilgi edinebilirsiniz .

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


1

Windows için docker kullanarak Windows IIS görüntüsünü çalıştırmak için aynı sorunu yaşadım. Yukarıdaki Muhammed Trabelsi cevabını okuduğumda, sorunumu çözmek için Windows konteynerler için konteynerlerimi (liman işçisi) değiştirmem gerektiğini fark ettim.

Bunu yapmak için:

  1. Docker örneğine sağ tıklayın
  2. Seç "Windows kapsayıcılarına Anahtarı ..."

1

Windows'ta daemon.json veya windows-daemon-options.json dosyasını düzenlemeniz gerekir, Windows'ta yapılandırma dosyasının varsayılan konumu% programdata% \ docker \ config \ daemon.json veya% programdata% \ docker \ resources \ windows -daemon-options.json

resim açıklamasını buraya girin resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Json dosyasındaki isteğe bağlı alan özellikleri, kullanıcıların belirli arka plan özelliklerini etkinleştirmesine veya devre dışı bırakmasına olanak tanır. Örnek: {"features": {"buildkit": true}}, varsayılan docker görüntü oluşturucu olarak buildkit'i etkinleştirir.


0

Linux kapsayıcılarını çalışır durumda bulamadığı için bu mesajı göstermesinin nedeni. Bu nedenle, çalıştırmadan önce pencerelerden linux kaplarına geçtiğinizden emin olun.


0

Benim için, çünkü C: \ ProgramData \ Docker \ config \ daemon.json erişim reddedildi Şimdi düzelttikten sonra çalışıyor. Linux kapsayıcılarına geçmeyi ve geri dönmeyi deneyebilirsiniz. Geçiş ile ilgili bir sorun yoksa, erişim izniyle çalışır.


0

Benim durumumda , ilk önce pencereleri güncellemem gerekti , bundan sonra sorun gitti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.