LoginSignup
1
0

M1 MacでDockerを使用する際の「no matching manifest for linux/arm64/v8 in the manifest list entries」エラーへの対応方法

Posted at

M1 MacでDockerを使用していて遭遇する可能性のあるエラー、「no matching manifest for linux/arm64/v8 in the manifest list entries」について対応策をお伝えします。このエラーメッセージは、DockerイメージがあなたのCPUアーキテクチャに対応していないときに表示されます。

エラー発生の状況

まずはじめに、私が遭遇した状況を共有します。以下のようなdocker-compose.ymlファイルを用意し、docker-compose up --buildコマンドを実行しました。

version: "3"
services:
    ...
    db-service:
        image: mysql:8.0.28
        ...

しかし、上記のコマンドを実行すると、以下のようなエラーメッセージが表示されました。

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

このエラーメッセージが表示される原因とその対処法について次のセクションで解説します。

エラーメッセージの原因とその対処法

このエラーメッセージは、「指定されたDockerイメージが現在使用しているCPUアーキテクチャに対応していない」という意味を持ちます。具体的には、M1 MacのCPUはARMアーキテクチャを採用していますが、ここで指定したmysql:8.0.28イメージはARM版が存在しないためにこのエラーが発生しました。

この問題に対する一つの解決策は、platformオプションを使用して明示的にイメージのアーキテクチャを指定することです。以下のようにdocker-compose.ymlファイルを編集します。

version: "3"
services:
    ...
    db-service:
        image: mysql:8.0.28
        platform: linux/amd64
        ...

もう一つの解決策として、ARMアーキテクチャに対応した別のDockerイメージを使用する方法があります。例えば、mysql/mysql-server:latestイメージはARMアーキテクチャに対応していますので、以下のようにイメージ名を変更することでこのエラーを解消できます。

version: "3"
services:
    ...
    db-service:
        image: mysql/mysql-server:latest
        ...

以上、M1 MacでDockerを使う際に遭遇する可能性のある「no matching manifest for linux/arm64/v8 in the manifest list entries」エラーの対処法をご紹介しました。Dockerを使う上で、自身の環境とイメージのアーキテクチャが一致していることを確認することは重要なポイントです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0