M1 Macで古いdockerイメージ使おうとしたら"no matching manifest for linux/arm64/v8"が出た時の対応


とある事情でM1 Macでcentos6を動かそうとしたらエラーになった時の対応メモ

docker: no matching manifest for linux/arm64/v8 in the manifest list entries.

TL;DR;

対応しているplatform指定してpullしてあげる。

docker pull --platform linux/amd64 centos:centos6  

mysqlの場合

docker pull --platform linux/amd64  mysql:5.6

あとはいつも通りの docker run xxx で動く。

背景

  • 諸事情によりcentos6のイメージを使いたかった
  • 最近のはちゃんとarm64v8のイメージが公開されてるけど、古いのは放置されている。(そりゃそうだw)
  • dockerには他のcpuアーキテクチャのイメージをエミュレートする機能がついている。
  • 一旦それに甘える

オフィシャルイメージのmanifestはこの辺にありました。
https://github.com/docker-library/official-images/tree/master/library

参考