📚

M1 Mac で Docker の mysql が動かない? これを試してみて!

1 min read

mysql が動かない!

今まで動いていたのに or 他の人は動いているのに自分だけ、docker を立ち上げると下記のようなエラーが出る!

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

こんな経験ないですか?
※この記事に行き着いている時点でまさにその経験が今という方が大多数だと思いますが

今後対応されるとは思いますが、 M1 Mac(ARM64) では mysql が動かない現象が発生しています。

問題の詳細

下記問題の詳細となります。

既知の問題
ARM64アーキテクチャですべてのイメージを使用できるわけではありません。--platform linux/amd64エミュレーション下でIntelイメージを実行するために追加できます。特に、mysqlイメージはARM64では使用できません。mariadbイメージを使用すると、この問題を回避できます。
ただし、qemuがコンテナの実行に失敗することがあるため、エミュレーション下のAppleSiliconマシンでIntelベースのコンテナを実行しようとするとクラッシュする可能性があります。さらに、ファイルシステム変更通知API(inotify)はqemuエミュレーションでは機能しません。コンテナがエミュレーション下で正しく実行されている場合でも、ネイティブの同等のものよりも低速で多くのメモリを使用します。
要約すると、ArmベースのマシンでIntelベースのコンテナを実行することは、「ベストエフォート」としてのみ見なされるべきです。可能な限り、Apple Siliconマシンでarm64コンテナを実行し、コンテナの作成者に、コンテナのarm64またはマルチアーチバージョンを作成することをお勧めします。複数のアーキテクチャをサポートするイメージが再構築されるにつれて、この問題は時間の経過とともに一般的ではなくなると予想されます。
pingコンテナ内からインターネットへの接続は期待どおりに機能しません。ネットワークをテストするには、curlまたはを使用することをお勧めしwgetます。docker / for-mac#5322を参照してください。
TCPストリームが半分閉じていると、ユーザーがデータのドロップを経験することがあります。
引用元:https://docs.docker.com/desktop/mac/apple-silicon/

解決策

docker-compose.ymlplatform: linux/x86_64の追記

docker-compose.yml

services:
  mysql:
    platform: linux/x86_64 ← 追加

Discussion

ログインするとコメントできます