도커를 테스트하면서 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
기존 이미지 제거 후 다시 컨테이너 실행 시 정상으로 구동되는 모습을 볼 수 있습니다.
[참고사이트]
'Docker' 카테고리의 다른 글
[Docker] Docker 이미지 & 컨테이너 (0) | 2023.01.24 |
---|