Docker : "매니페스트 목록 항목에서 windows / amd64에 일치하는 매니페스트가 없습니다"


151

Windows에서 Docker를 사용 하고이 명령으로 PHP 이미지를 가져 오려고 할 때

$ docker pull php

이 메시지를 받았습니다 :

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

이 문제를 어떻게 해결할 수 있습니까?


5
다른 사람들을 돕기 위해 기본 OS로 Linux 용 이미지를 만드는 동안이 오류가 발생했습니다 ....이 오류의 이유는 Windows 컨테이너 용으로 설정되어 Linux 컨테이너로 전환 한 다음 작동하기 시작한 것입니다.
Abhishek Jain

또한 후손을 위해 :이 건물에는 Windows 컨테이너가 있습니다. Windows로 전환했지만 Linux로 다시 전환 된 것으로 보입니다. 다시 Windows로 변경하면 문제가 해결되었습니다.
John MacIntyre

답변:


215

Windows 10에서도 이와 동일한 문제가 발생했습니다. 실험 모드에서 Docker 데몬을 실행하여 무시했습니다.

  1. Windows 시스템 트레이에서 Docker 아이콘을 마우스 오른쪽 버튼으로 클릭하십시오.
  2. 설정으로 이동
  3. 악마
  4. 많은
  5. 설정 "experimental": true
  6. Docker를 다시 시작하십시오.

6
Docker 인스턴스를 어떻게 마우스 오른쪽 버튼으로 클릭합니까? Windows 작업 표시 줄의 Docker 아이콘입니까?
피터 Mortensen

2
@PeterMortensen 맞습니다, 그것은 작업 표시 줄의 Docker 아이콘입니다
benscabbia

이전 답변 외에도 C : \ WINDOWS \ System32 \ drivers \ etc \ hosts.etc의 "읽기 전용"속성도 제거해야했습니다.
Thiago Custodio

3
Windows에서는 '% programdata % \ docker \ config \ daemon.json'에서 구성 파일을 직접 찾아서 속성을 설정할 수 있습니다.
NemyaNation 19

1
독립 실행 형 바이너리 사용 --experimental기능 에서 도킹 된 (데몬)을 실행중인 경우
Anwar

91

이 오류에는 여러 가지 이유가있을 수 있습니다. 그러나이 오류의 가장 확실한 이유는 Linux 컨테이너 모드에서 Windows 컨테이너를 사용하거나 그 반대의 경우입니다.

  1. 상황에 맞는 메뉴의 시스템 트레이에서 Docker 아이콘을 클릭하십시오.
  2. "창 / 리눅스 컨테이너로 전환"을 클릭하십시오
  3. 스위치 대화 상자에서 옵션 클릭 스위치 버튼
  4. 시간이 조금 걸릴 수 있습니다
  5. 도 커가 지금 실행 상태가되게하십시오

컨테이너 모드 전환 대화 상자


3
그것은 내 "창 / AMD64에 대한 일치하는 매니페스트"에 대한 문제 해결
winlinux을

1
이 질문에 답변해야합니다. stackoverflow.com/questions/56005151/…
xpto

1
그것은 '매니페스트 목록 항목에서 windows / amd64 10.0.17134에 일치하는 매니페스트가 없습니다'라는 문제로 나를 위해 일했습니다.
Amna

86

Windows 컨테이너 모드에 있습니다. 따라서 가져 오려는 이미지 가 Windows 아키텍처 용으로 작성 되었는지 확실하지 않은 경우 Linux 컨테이너로 전환해야합니다.


1
대안 (내가 또한 작동하는 것으로 밝혀
Peter Mortensen

3
이것은 문제를 해결했다. Windows 10 플랫폼을 사용하고있었습니다.
somnathchakrabarti

일단 전환에 실패하면? 그것은 해결 방법
Tiago Medici

1
Linux 컨테이너로 전환하면 Docker 내에서 Windows 응용 프로그램을 호스팅 할 수 있습니까? 예를 들어 동일한 Docker 인스턴스에서 IIS와 MySQL을 사용합니다.
webworm

@webworm Windows 용 MySQL도 있기 때문에 Windows 버전 만 사용하는 것이 아니라 IIS와 혼합하려는 경우 Linux 버전을 사용하는 이유는 무엇입니까?
조지 Birbilis

35

이를 수행 할 수있는 또 다른 방법은 다음과 같습니다.

시스템 트레이에서 docker 아이콘을 마우스 오른쪽 버튼으로 클릭 한 다음을 클릭하십시오 Switch to Linux containers.

(Docker for Windows, Community Edition, 버전 18.03.1)


30

제 경우에는 내가 사용했던 Windows OS 버전이 당기려고하는 태그를 지원하지 않았습니다. 오래된 태그를 사용하면이 작업을 수행 할 수있었습니다.

구체적으로 특별히:

docker pull mcr.microsoft.com/windows/nanoserver:1903 오류

docker pull mcr.microsoft.com/windows/nanoserver:1803-amd64 일했다


이! Microsoft는 이전 이미지 (servercore / nanoserver)와 비교하여 무언가를 변경했습니다. 이제 배포하려는 시스템의 Windows 버전을 조회하고 그에 따라 기본 이미지를 선택해야합니다.
JustCoding

1
많은 Joedragons 감사합니다!
rishi jain

좋은 대답입니다! 이 자습서를 따라 Windows 10에서이 문제가 해결되었습니다 docs.microsoft.com/en-us/virtualization/windowscontainers/…
user1299379

그것은 또한 나를 위해 일했습니다. 그러나 모든 이미지 (예 : hello-world)를 가져올 때이 방법을 사용해야합니까?
Mandroid

@Mandroid 나는 당신의 연구 결과에 관심이 있었지만 일부 이미지는 작동하는 것처럼 보였고 일부는 내 경우에는 그렇지 않았으므로 매우 특정 설정이라고 생각합니다. 예를 들어 하나의 Windows 패치가있는 경우 다른 패치가 다를 수 있습니다.
joedragons

21

버전 : Windows 10

1 단계 : Docker 인스턴스를 마우스 오른쪽 버튼으로 클릭하고 설정으로 이동
여기에 이미지 설명을 입력하십시오

2 단계 : 기본에서 고급으로 "실험"설정 : true 여기에 이미지 설명을 입력하십시오

3 단계 : Docker 다시 시작
여기에 이미지 설명을 입력하십시오

4 단계 : dockerfile 설치 성공 (예 : docker build -t williehao / cheers2019) 여기에 이미지 설명을 입력하십시오



6

관리자 Powershell에서 실행하여 Windows 10 에서이 문제를 해결했습니다.

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

그리고:

./DockerCli.exe -SwitchDaemon

3

당기는 응용 프로그램을 고려하십시오-Windows 기반입니까? 그렇지 않은 경우 Linux 컨테이너를 실행해야합니다.

실험 모드를 사용하지 않으면 한 스타일의 컨테이너와 다른 스타일의 컨테이너에서만 Docker를 사용할 수 있습니다. 위에서 언급 한대로 실험 모드를 활성화하면 작성 파일에서 가져 오는 응용 프로그램에 필요한 Windows 및 Linux 컨테이너를 사용할 수 있습니다.

주요 참고 사항 : 실험적-여전히 Docker가 개발 중입니다.


3

이것은 Windows 컨테이너로 인해 발생할 수 있습니다!

오늘날 모든 Node.Js 도커 이미지를 가져올 수 없습니다. 당기려는 이미지를 항상 확인하십시오.

관련 Github 문제


3

이것은 "docker pull"이 Windows 10 # 1100에서 실패한 것처럼 보입니다.

추가 --experimental가 작동하지 않으면 windows 용 docker를 다시 설치하십시오 .


"experimental : true"를 추가해도 효과가 없었으므로 docker를 다시 설치하기 전에 Linux 컨테이너로 전환하려고 시도했는데 효과가있었습니다.
yogescicak

Windows 환경에서 Hyper-V Virtual Machine Management 서비스가 실행 중인지 확인한 다음 docker를 설치 한 후 Linux 컨테이너 모드로 전환하십시오.
Junior Mayhé

experimental작품 추가 , 감사합니다 ... 왜 그렇습니까?
Angshuman Agarwal

@AngshumanAgarwal 실험 기능 ( docs.docker.com/docker-for-windows/#command-line ) 을 사용하면 Docker를 사용하는 데 필요할 수있는 드라이버 ( github.com/docker/cli/blob/master/experimental/… )가 추가 됩니다. Windows.
VonC

알겠습니다. 감사합니다. 그러나 여전히 Windows 10에 문제가 있습니다. Docer는 Docker가 기본적으로 실행되지만 그렇게 보이지는 않습니다. 작업을 수행하려면 Windows 10에서 "Linux 컨테이너"로 전환해야했습니다.
Angshuman Agarwal

2

Azure DevOps 파이프 라인에서이 오류가 발생했습니다.

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

문제는 Hosted Ubuntu 대신 Hosted VS2017을 선택 했다는 것입니다 . 다음과 같이 변경 한 후 빌드가 완료되었습니다.

여기에 이미지 설명을 입력하십시오

도움이 되길 바랍니다.



2

Docker 인스턴스를 마우스 오른쪽 단추로 클릭하십시오. 설정 데몬 고급으로 이동 "실험"을 설정하십시오. true Docker를 다시 시작하십시오.

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

2

'최신'태그 사용 중단

더 나은 컨테이너 사례를 장려하기 위해 모든 Windows 기본 이미지에서 '최신'태그를 사용하지 않습니다. 2019 년 초에 더 이상 태그를 게시하지 않습니다.  . 사용 가능한 태그 목록에서 가져옵니다.

대신 프로덕션 환경에서 실행할 특정 컨테이너 태그를 선언 하는 것이 좋습니다 . '최신'태그는 구체적과 반대입니다. 컨테이너가 실제로 이미지 이름과 어떤 버전인지에 대해서는 사용자에게 알려주지 않습니다. 버전 호환성 및 컨테이너 문서 에서 적절한 태그 선택에 대한 자세한 내용을 읽을 수 있습니다 .

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


1

Windows 용 docker를 사용하여 Windows IIS 이미지를 실행하는 것과 동일한 문제가있었습니다. 위의 Mohammad Trabelsi 응답을 읽으면서 문제를 해결하려면 Windows 컨테이너 용 컨테이너 (Docker)를 전환해야한다는 것을 깨달았습니다.

이것을하기 위해:

  1. Docker 인스턴스를 마우스 오른쪽 버튼으로 클릭하십시오.
  2. "Windows 컨테이너로 전환 ..."을 선택하십시오.

1

Windows에서 daemon.json 또는 windows-daemon-options.json 파일을 편집해야합니다. Windows에서 구성 파일의 기본 위치는 % programdata % \ docker \ config \ daemon.json 또는 % programdata % \ docker \ resources \ windows입니다. -daemon-options.json

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

json 파일의 선택적 필드 기능을 통해 사용자는 특정 데몬 기능을 활성화 또는 비활성화 할 수 있습니다. 예 : { "features": { "buildkit": true}}는 기본 docker 이미지 빌더로 buildkit을 활성화합니다.


0

Linux 컨테이너를 실행중인 것으로 찾을 수 없어서이 메시지를 표시하는 이유입니다. 따라서 실행하기 전에 Windows에서 Linux 컨테이너로 전환해야합니다.


0

나를 위해, 그것은 C : \ ProgramData \ Docker \ config \ daemon.json에 대한 액세스가 거부 되었기 때문에 해결되었습니다. 지금 수정했습니다. Linux 컨테이너로 전환 한 후 다시 전환 할 수 있습니다. 스위칭에 문제가 없으면 액세스 권한으로 작동합니다.


0

내 경우 에는 문제가 사라진 후에 먼저 업데이트 해야했습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.