필자의 노트북은 M1 에어이다.
도커 컴포즈 파일로 실습을 하면서 이미지를 pull 하다가 아래와 같은 에러 발생했다.
ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries
직역하면 '오류: 매니페스트 목록 항목에 linux/arm64/v8과 일치하는 매니페스트가 없습니다.' 이다.
오류를 보고 처음 든 생각은 애플 실리콘 칩을 지원하지 않는 것을 Pull 했구나 라는 생각이 들었다.
오류를 구글링을 해보니 이에 대한 해결책은 2가지가 있는 것 같다.
1. 첫 번째 해결책인 .yml 파일에 platform 설정
필자는 mysql 이미지를 pull 하는 과정에서 오류가 발생했다.
첫 번째 해결 법은 우리가 사용하는 docker-compose.yml에 플랫폼을 작성하면 된다.
도커 공식 문서에서는 다음과 같이 말한다.
'Some images do not support the ARM64 architecture.
You can add --platform linux/amd64 to run (or build) an Intel image using emulation.'
아마 에뮬레이션이란 기술을 통해 문제를 해결하는 것 같다.
에뮬레이션이란 사전을 통해 살펴보면 다른 컴퓨터의 기계어 명령대로 실행할 수 있는 기능이라는 뜻이다.
services:
mysql:
image: mysql:5.7
platform: linux/amd64 #이걸 추가하면 오류 해결
2. 두 번째 해결책인 환경 변수 설정
docker-compose.yml 파일마다 설정하지 않고 그냥 터미널에 해당 명령어를 치면 된다.
그럼 이제 이미지를 pull할 때 linux/amd64 플랫폼을 지원하는 이미지를 가져온다.
export DOCKER_DEFAULT_PLATFORM=linux/amd64
필자 노트북은 M1이라 이 방식을 사용했다.
이상으로 포스팅을 마칩니다. 감사합니다.
참고 자료
댓글