해결된 질문
작성
·
35
2
강의에서 말씀하신 대로 devwikirepo에서 simple-web:1.0을 pull 한 후 tag를 적용하여 저의 docker hub 계정에 push 하였으나, 제목에 말씀드린 오류가 발생되어 이후에 image 를 Pull 할 수가 없습니다. 아래는 스크린샷입니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. angellike님.
docker push
명령어 실행 중에 “single-platform image” 관련 메시지를 보셨다고 하셨군요. 이는 Docker Hub에 이미지가 단일 플랫폼으로만 푸시되었음을 의미하며, 추가로 플랫폼별 이미지를 제공하지 않았기 때문에 발생한 경고일 수 있습니다. 이는 멀티플랫폼 이미지를 지원하지 않을 경우 발생할 수 있는 문제로 이해하시면 됩니다.
이미지 Push가 정상적으로 이루어지지 않는 문제를 해결하기 위한 몇 가지 접근 방법을 안내 드리겠습니다.
Docker 레이어 확인:
docker image ls
명령어를 통해 레이어 상세 정보를 확인해보세요.멀티플랫폼 이미지 생성:
buildx
명령어를 활용해야 합니다. 이 도구를 사용하면 다양한 플랫폼을 지원하는 이미지를 생성할 수 있습니다.
docker buildx build --platform linux/amd64,linux/arm64 -t hahongchul/my-simple-web:0.1 --push .
Repository 설정 확인:
이미지 태그 확인:
latest
로 처리되기도 합니다.유사한 문의로는 섹션4. 이미지 빌드에서 이미지 커밋이 안되는 현상이 있어 문의드립니다.에서 다루어진 케이스가 있습니다. 이 질문에서는 이미지 커밋 오류에 대한 상세한 해결 방안과 다양한 플랫폼에서 명령어 실행 방법에 대한 설명을 제공합니다.
이미지 푸시 및 멀티플랫폼 지원에 대해서 보다 구체적인 질문이 있으면 이어서 질문 부탁드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
angellike님 안녕하세요. 데브위키입니다.
먼저 이미지는 CPU 아키텍처(플랫폼)가 다르면 사용할 수 없습니다.
예를 들어 리눅스에서 빌드한 이미지를 윈도우에서 사용할 수 없는 구조인 것이죠.
다만 devwikirepo/simple-web 이미지는 모든 플랫폼에서 사용할 수 있도록 푸시되어 있습니다.
따라서 사용하시는 PC의 종류에 맞춰서 자동으로 pull, push가 이루어지는데, 이 경우 이미지를 pull 받으실 때 다른 플랫폼의 이미지가 다운로드 된 버그인 것으로 보입니다.
따라서 해결하신 방법은 이미지를 push 할 때 --platform linux/amd64 옵션을 사용해서 강제로 amd64 버전으로 이미지를 푸시하는 방법으로 잘 해결하신 것이 맞습니다.
강의 들으시면서 같은 문제가 발생하거나 더 궁금하신점이 있으시면 질문 부탁드립니다 😊
docker push 할 때 platform을 지정하였더니 해결되었습니다. 하지만 이렇게 해결하는 것이 정확한 지는 모르겠습니다.
docker push --platform linux/amd64 hahongchul/my-simple-web:0.1