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
이 문제를 어떻게 해결할 수 있습니까?
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
이 문제를 어떻게 해결할 수 있습니까?
답변:
Windows 10에서도 이와 동일한 문제가 발생했습니다. 실험 모드에서 Docker 데몬을 실행하여 무시했습니다.
"experimental": true--experimental기능 에서 도킹 된 (데몬)을 실행중인 경우
이 오류에는 여러 가지 이유가있을 수 있습니다. 그러나이 오류의 가장 확실한 이유는 Linux 컨테이너 모드에서 Windows 컨테이너를 사용하거나 그 반대의 경우입니다.
Windows 컨테이너 모드에 있습니다. 따라서 가져 오려는 이미지 가 Windows 아키텍처 용으로 작성 되었는지 확실하지 않은 경우 Linux 컨테이너로 전환해야합니다.
제 경우에는 내가 사용했던 Windows OS 버전이 당기려고하는 태그를 지원하지 않았습니다. 오래된 태그를 사용하면이 작업을 수행 할 수있었습니다.
구체적으로 특별히:
docker pull mcr.microsoft.com/windows/nanoserver:1903 오류
docker pull mcr.microsoft.com/windows/nanoserver:1803-amd64 일했다
먼저 Linux 플랫폼을 끌어 와야 Windows에서 실행할 수 있습니다.
docker pull --platform linux php
docker run -it php
Windows 10 Fall Creators Update가 포함 된 블로그 게시물 Docker for Windows Desktop 18.02를 참조하십시오 .
--platform깃발도 작동합니다. 그것은 다시 다운로드 할 수 있지만.
이것은 Windows 컨테이너로 인해 발생할 수 있습니다!
오늘날 모든 Node.Js 도커 이미지를 가져올 수 없습니다. 당기려는 이미지를 항상 확인하십시오.
이것은 "docker pull"이 Windows 10 # 1100에서 실패한 것처럼 보입니다.
추가 --experimental가 작동하지 않으면 windows 용 docker를 다시 설치하십시오 .
experimental작품 추가 , 감사합니다 ... 왜 그렇습니까?
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을 선택 했다는 것입니다 . 다음과 같이 변경 한 후 빌드가 완료되었습니다.
도움이 되길 바랍니다.
docker run mcr.microsoft.com/windows/servercore:ltsc2016
위의 명령을 시도하십시오. 당기는 것은 현재 사용중인 기본 Windows 버전과 호환되어야합니다. 위의 Windows Server 2016 인 경우 작동합니다.
자세한 내용은이 스레드를 따르십시오
'최신'태그 사용 중단
더 나은 컨테이너 사례를 장려하기 위해 모든 Windows 기본 이미지에서 '최신'태그를 사용하지 않습니다. 2019 년 초에 더 이상 태그를 게시하지 않습니다. . 사용 가능한 태그 목록에서 가져옵니다.
대신 프로덕션 환경에서 실행할 특정 컨테이너 태그를 선언 하는 것이 좋습니다 . '최신'태그는 구체적과 반대입니다. 컨테이너가 실제로 이미지 이름과 어떤 버전인지에 대해서는 사용자에게 알려주지 않습니다. 버전 호환성 및 컨테이너 문서 에서 적절한 태그 선택에 대한 자세한 내용을 읽을 수 있습니다 .
https://techcommunity.microsoft.com/t5/containers/windows-server-2019-now-available/ba-p/382430#
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을 활성화합니다.
나를 위해, 그것은 C : \ ProgramData \ Docker \ config \ daemon.json에 대한 액세스가 거부 되었기 때문에 해결되었습니다. 지금 수정했습니다. Linux 컨테이너로 전환 한 후 다시 전환 할 수 있습니다. 스위칭에 문제가 없으면 액세스 권한으로 작동합니다.