본문 바로가기
Docker

[Docker] M1맥북으로 EC2 배포 시 오류(linux/arm64, linux/amd64), does not match the detected host platform (linux/amd64)

by chan10 2023. 2. 28.

도커를 테스트하면서 EC2에 컨테이너를 배포하는데 아래와 같은 오류가 발생했습니다.

 

WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested

 

해당 오류의 원인은 M1맥북으로 빌드한 이미지 플랫폼은 linux/arm64/v8인데 EC2는 linux/amd64이라 플랫폼 환경이 맞지 않아 발생한 오류입니다.

이를 해결하기 위해 이미지 빌드 시 --platform linux/amd64 옵션을 사용하여 플랫폼을 지정해서 빌드하도록 하면 됩니다.

 

docker build --platform linux/amd64 -t [ImageName] .

 

로컬PC에서 도커 허브로 이미지 푸시 후 EC2에서 이미지를 다시 pulling하여 배포하면 됩니댜.

docker build --platform linux/amd64 -t kkchan9210/node-example-1 .

docker push kkchan9210/node-example-1

 

#EC2 

단, 도커는 컨테이너 실행 시 로컬에 이미지가 존재한다면 이미지를 새롭게 pulling하지 않고 로컬 이미지를 사용합니다. 그래서 기존 이미지를 지운다음 실행하거나 이미지를 수동으로 pulling해줘야 합니다.

 

이미지 제거 : sudo docker image rm [ImageName]

이미지 pull : sudo docker pull [ImageName]

(docker pull 시 기존 이미지는 태그 값이 지워지는 형태로 보존되기에 이미지 제거 작업은 필요합니다.)

 

$ sudo docker run -d --rm -p 80:80 --name node-app kkchan9210/node-example-1

기존 이미지 제거 후 다시 컨테이너 실행 시 정상으로 구동되는 모습을 볼 수 있습니다.

 

[참고사이트]

https://asecurity.dev/entry/Docker-MAC-M1-Error-images-platform-linuxarm64v8-does-not-match-the-detected-host-platform-%ED%95%B4%EA%B2%B0

 

'Docker' 카테고리의 다른 글

[Docker] Docker 이미지 & 컨테이너  (0) 2023.01.24