解決 Mac M1 docker 遇到錯誤 The requested image's platform (linux/amd64) does not match

使用 Mac M1 docker 遇到錯誤訊息「The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested」 解決方式是改選支援 arm64 的新版 tag。

這張圖片描繪了一隻可愛的藍色鯨魚,背上堆疊著多個不同顏色的貨櫃。鯨魚露出微笑,圓圓的大眼睛增添了牠的可愛感。貨櫃排列整齊,顏色主要是藍色和黃色,並帶有各種標誌與圖案。鯨魚在水中游動,背景簡單帶有淺色水彩風格的水滴效果,增添了輕快活潑的氣氛。整體風格充滿童趣與卡通風格,營造出輕鬆、愉快的氛圍。
Made with Midjourney

問題狀況

輸入指令:

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.5.2

遭遇錯誤訊息

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

警告訊息意思:你要執行的程式 (image) 是為特定平台 (linux/amd64) 設計的,但跟你現在使用的電腦 ((linux/arm64/v8) 不相符合。Docker Desktop 警告:運氣不好的狀況是無法啟動 image、或者可以順利執行,但是可能效能不好。


瞭解問題狀況

1. 如果是 Linux 或 Mac 作業系統,在終端機輸入指令:

uname -a

指令結果:

Darwin MBP.local 23.6.0 Darwin Kernel Version 23.6.0: Mon Jul 29 21:14:30 PDT 2024; root:xnu-****.***.**~1/RELEASE_ARM64_T6000 arm64

上方結果的最後顯示 arm64 代表目前使用 arm64 處理器架構。

2. 如果是 Windows 作業系統,在命令提示字元 (cmd) 輸入指令:

systeminfo

指令結果:

系統類型: ARM64-based PC

上方結果顯示是 arm64 處理器架構,如果顯示「x64-based PC」則是 amd64 處理器架構。
關於 amd64 詳細資訊可以查看 x86-64 維基百科條目、arm64 則可以查看 AArch64

解決方式

檢查 elasticsearch:7.5.2 docker container 是否支援 arm64 架構?

1. 到 Docker Hub 

2. 輸入 elasticsearch 關鍵字,到達收藏不同版本 Elasticsearch Docker images 的頁面

3. 點選 Tags 標籤



4. Tags 輸入版本號碼「7.5.2」
可以看到 OS/Arch 部份只列了 linux/amd64 而沒有我們想要的 arm64 架構。

解決方式

1. 花時間的方式:花時間修改 Docker file 並重新編譯相關套件,可以支援  arm64 架構。或者搜尋 Github 相關專案。

2. 省時間的方式:改用官方支援的新版
Tags 輸入新的版本號碼,例如下圖「8.9.0」可以看到同時支援 linux/amd64 與 linux/arm64 兩種架構。


因為網路上教學文章容易因為時效問題,導致文章語法並不支援新的處理器架構。需要回到 Docker Hub 確認。

相關文章


留言