강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

angellike님의 프로필 이미지
angellike

작성한 질문수

개발자를 위한 쉬운 도커

이미지 레지스트리 실습

docker push 하는 중 "single-platform image ..." 메세지가 나오고, docker hub에 image와 tag가 정상적으로 등록되지 않습니다.

해결된 질문

작성

·

35

2

강의에서 말씀하신 대로 devwikirepo에서 simple-web:1.0을 pull 한 후 tag를 적용하여 저의 docker hub 계정에 push 하였으나, 제목에 말씀드린 오류가 발생되어 이후에 image 를 Pull 할 수가 없습니다. 아래는 스크린샷입니다.

image.png

 

image.png



답변 1

0

안녕하세요, 인프런 AI 인턴입니다. angellike님.

docker push 명령어 실행 중에 “single-platform image” 관련 메시지를 보셨다고 하셨군요. 이는 Docker Hub에 이미지가 단일 플랫폼으로만 푸시되었음을 의미하며, 추가로 플랫폼별 이미지를 제공하지 않았기 때문에 발생한 경고일 수 있습니다. 이는 멀티플랫폼 이미지를 지원하지 않을 경우 발생할 수 있는 문제로 이해하시면 됩니다.

이미지 Push가 정상적으로 이루어지지 않는 문제를 해결하기 위한 몇 가지 접근 방법을 안내 드리겠습니다.

  1. Docker 레이어 확인:

    • Docker 이미지는 여러 계층(layer)로 구성됩니다. 문제의 핵심이 특정 레이어 누락 또는 이미지 정의에 있을 수 있습니다. docker image ls 명령어를 통해 레이어 상세 정보를 확인해보세요.
  2. 멀티플랫폼 이미지 생성:

    • 멀티플랫폼 이미지를 생성하고자 한다면 Docker의 buildx 명령어를 활용해야 합니다. 이 도구를 사용하면 다양한 플랫폼을 지원하는 이미지를 생성할 수 있습니다.
    • 예시 명령어:
      
      docker buildx build --platform linux/amd64,linux/arm64 -t hahongchul/my-simple-web:0.1 --push .
      

  3. Repository 설정 확인:

    • Docker Hub에서 크레덴셜 또는 권한 관련 설정이 올바른지 확인해 보세요. 잘못된 레지스트리 설정이나 권한 문제로 인해 정상적인 푸시가 되지 않을 수 있습니다.
  4. 이미지 태그 확인:

    • 지정한 태그가 Hub에 푸시된 것과 일치하는지 검토하세요. 또한 Docker는 최근 푸시된 이미지가 정확히 무엇인지를 태그로 분류합니다. 레시피를 확인하시고 최신 태그일 경우 latest로 처리되기도 합니다.

유사한 문의로는 섹션4. 이미지 빌드에서 이미지 커밋이 안되는 현상이 있어 문의드립니다.에서 다루어진 케이스가 있습니다. 이 질문에서는 이미지 커밋 오류에 대한 상세한 해결 방안과 다양한 플랫폼에서 명령어 실행 방법에 대한 설명을 제공합니다.

이미지 푸시 및 멀티플랫폼 지원에 대해서 보다 구체적인 질문이 있으면 이어서 질문 부탁드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

angellike님의 프로필 이미지
angellike
질문자

docker push 할 때 platform을 지정하였더니 해결되었습니다. 하지만 이렇게 해결하는 것이 정확한 지는 모르겠습니다.

docker push --platform linux/amd64 hahongchul/my-simple-web:0.1

angellike님 안녕하세요. 데브위키입니다.

먼저 이미지는 CPU 아키텍처(플랫폼)가 다르면 사용할 수 없습니다.

예를 들어 리눅스에서 빌드한 이미지를 윈도우에서 사용할 수 없는 구조인 것이죠.

다만 devwikirepo/simple-web 이미지는 모든 플랫폼에서 사용할 수 있도록 푸시되어 있습니다.

image.png

 

따라서 사용하시는 PC의 종류에 맞춰서 자동으로 pull, push가 이루어지는데, 이 경우 이미지를 pull 받으실 때 다른 플랫폼의 이미지가 다운로드 된 버그인 것으로 보입니다.

 

따라서 해결하신 방법은 이미지를 push 할 때 --platform linux/amd64 옵션을 사용해서 강제로 amd64 버전으로 이미지를 푸시하는 방법으로 잘 해결하신 것이 맞습니다.

 

강의 들으시면서 같은 문제가 발생하거나 더 궁금하신점이 있으시면 질문 부탁드립니다 😊

angellike님의 프로필 이미지
angellike

작성한 질문수

질문하기