在新的 M2 pro 上依循著之前的方法製作了 Docker Containter ,卻在 Synology NAS 上的 Docker 上要復原時發生了以下的錯誤訊息:
The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested.
經查詢後得知:在 M1/M2 中 build 出來的 Containter 是只能在它自己的環境中(linux/arm64/v8)執行;所以當導到其他的架構時、因為 amd64v8 和原本的 amd64 for x86 指令集不同時就會出現錯誤;雖然 Dcoker 構建出來的容器是可以在大多數操作系統上運作的、但⋯⋯需要特別注意的是:Docker 容器的架構類型仍需和 Host 的操作系統相對應。例:Ubuntu 是 x86 的、那麼 Docker 也必需是 x86 的。
最簡單的解決方法即是在 MBP M2 中 build 的時候使用 buildx 並加入 –platform linux/amd64 即可、如下:
docker buildx build --platform=linux/amd64 -t testwebyserp .