도커&쿠버네티스

도커 platform 버전 오류 해결 방법

martinooo 2024. 8. 26. 11:35

platform

 

 

 

🤷‍♂️ docker platform 설정이 필요한 이유


도커에서 platform 설정을 사용하는 이유는 컨테이너 이미지를 호스트 서버의 CPU 아키텍처와 호환되도록 하기 위해서입니다.

 

예를 들어 로컬에서 이미지를 빌드하고 ECR PUSH 후에 클라우드 서버에서 ECR PULL을 받고 컨테이너를 실행하면 플랫폼 버전이 맞지 않아서 오류가 발생합니다.

 

또한, 맥 OS에서는 platform 옵션을 설정해주지 않으면 다른 플랫폼으로 빌드를 할 때 platform 버전 오류가 발생하기 때문에 platform 옵션 설정이 필요합니다.

 

이러한 문제를 해결하기 위해서 platform 설정이 필요합니다.

 

 

도커란?

https://itibiza.tistory.com/entry/%EB%8F%84%EC%BB%A4-%EC%9E%85%EB%AC%B8-%EC%8B%9C%EB%A6%AC%EC%A6%88-docker-%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%99%80-%EB%A0%88%EC%9D%B4%EC%96%B4-%EA%B0%9C%EB%85%90

 

[도커 입문 시리즈] docker 이미지와 레이어 개념

이 글에서는 입문자를 위한 도커 시리즈로 도커 입문 시리즈 - Docker 이미지와 레이어 개념에 대해서 소개합니다. 안녕하세요! ITibiza입니다. 도커 시리즈 1탄2024.07.31 - [개발/Docker] - [도커 입문

itibiza.tistory.com

 

 

 

🤷‍♂️ platform 명령어를 알기 전에 도커 이미지와 CPU 아키텍처


도커 이미지는 특정 CPU 아키텍처(예: amd64, arm64 등)용으로 빌드됩니다.

CPU 아키텍처는 프로세스가 데이터를 처리하는 방식에 따라 달라집니다.

 

현재 많이 사용되는 두 가지 주요 아키텍처

  • amd64: 주로 데스크톱, 서버, 클라우드 컴퓨팅 환경에서 사용하는 64비트 x86 아키텍처입니다. 대부분의 PC와 서버에서 사용됩니다.
  • arm64: 주로 모바일 장치, IoT 장치, 일부 서버에서 사용하는 64비트 ARM 아키텍처입니다. 에너지 효율이 높은 ARM 칩을 사용하는 장치에서 주로 사용됩니다.

 

2022.06.27 - [도커&쿠버네티스] - [Docker] Docker의 개념 및 핵심 설명

 

[Docker] Docker의 개념 및 핵심 설명

Docker란? Go언어로 작성된 리눅스 컨테이너 기반으로하는 오픈소스 가상화 플랫폼입니다. VM(Virtual Machine)과 컨테이너(Container)의 차이 가상화는 VM 버추얼 머신으로 OS가상화죠. 대표적으로 window, li

cometruedream.tistory.com

 

platform 옵션

🤷‍♂️ platform 오류 해결 방법


위에 도커 이미지와 CPU 아키텍처의 프로세스와 데이터를 처리하는 방식을 이해를 하셨다면 platform 명령어로 오류를 해결하는 방법을 알아보겠습니다. 

 

platform 옵션 명령어

docker build --platform linux/amd64 -t <태그> .

 

위에 명령어로 도커 이미지를 빌드하면 platform 호환성 오류를 해결할 수 있습니다.

 

build 명령어 옵션에 --platform linux/amd64 추가하면 도커에게 이 빌드 이미지는 amd64 호스트에서 실행되어야 한다고 지시합니다.

그래서 로컬에서 빌드한 이미지를 클라우드 서버에서 플랫폼이 맞지 않아 생기는 오류를 해결하실 수 있습니다.

 

 


 

재밌는 오늘의 띠별 운세 보고 가세요! 

 

 

https://wtemplate.qshop.ai/

 

wtemplate

성공적인 온라인 비즈니스를 위한 첫걸음, 전문 랜딩 페이지 제작, SEO 구글 GA 전환 ,트리거, 애널리스틱 셋팅

wtemplate.qshop.ai

 

 

https://cometruedream.tistory.com/243

 

NestJS Lifecycle (생명주기) 개념

🤷‍♂️ 본론에 앞서 Nest JS 개념?Nest JS는 Node JS 기반으로 한 서버 어플리케이션 프레임워크 입니다. 자바스크립트는 상당히 오랫동안 Express 기반으로 서버 어플리케이션 개발에서 압도적인 점

cometruedream.tistory.com

 

 

https://cometruedream.tistory.com/242

 

리액트 Vite Proxy 활용한 CORS 오류 해결

🤷‍♂️ 본론에 앞서프론트엔드 번들러 개념과 webpack vs vite 비교에 대해서 공부를 하고 글을 보시면 더 많은 도움이 됩니다^^프론트엔드 개발을 위한 번들러 개념과 webpack vs vite 비교https://comet

cometruedream.tistory.com

 

 

https://cometruedream.tistory.com/241

 

React 폴더구조 FSD 기능 분활 설계 아키텍처

🤷‍♂️ 본론에 앞서프로젝트를 시작하기에 앞서 폴더 구조, 설계에 대한 아키텍처를 만드는 것은 상당히 어렵다. 이번 프로젝트에 React FSD 폴더구조 아키텍처를 설계할 예정이라서 FSD 아키텍

cometruedream.tistory.com

 

 

https://cometruedream.tistory.com/244

 

쉽게 이해하고 사용할수 있는 Prisma 명령어 정리

🤷‍♂️ Prisma 명령어 본론에 앞서 Prisma란?Nest JS 프레임워크와 Prisma ORM을 활용해서 프로젝트를 진행하면서 Prisma는 Node JS 기반에 프레임워크/라이브러리와 상호작용이 잘되며 Prisma + DB 연동으

cometruedream.tistory.com