M1Mac環境でDockerのMySQLを動かす
概要
M1Mac環境でMySQLを起動しようと思ったら下記のようなエラーが出た。
$ docker run -d --rm -e MYSQL_ROOT_PASSWORD=password mysql:8.0
Unable to find image 'mysql:8.0' locally
8.0: Pulling from library/mysql
docker: no matching manifest for linux/arm64/v8 in the manifest list entries.
この記事はM1MacでDockerを使ってMySQLのコンテナを立ち上げるためのものです。
事前準備
Docker Desktop(Preview)をインストール済
理由
M1Macのプラットフォームはarm64。
mysqlイメージのサポートプラットフォームはamd64。
イメージをプルする際に実行環境のプラットフォームに合わせて自動的にamd64のイメージを取得し、エラーになっている。
解決策
--platformオプションを付与して、明示的にamd64のイメージを取得する。
--platformオプションによって、どのプラットフォーム (OSおよびCPUアーキテクチャの組み合わせ) に対応したイメージを生成するのかを指定します。
ここでは「Linux/AMD64」と「Linux/ARM64」という2通りのプラットフォームを指定しています。
ちなみに、--platformオプションを省略した場合は、ビルドを実行する環境のOS/CPUアーキテクチャが自動的に指定されます。
引用元: Dockerの「マルチCPUアーキテクチャ」に対応したイメージをビルドする
docker コマンドの場合
--platformオプションを追加する
$ docker run -d --rm --platform linux/x86_64 -e MYSQL_ROOT_PASSWORD=password mysql:8.0
Dockerfileの場合
--platformmオプションを追加する
FROM --platform=linux/x86_64 mysql:8.0
(省略)
docker-compose.ymlの場合
platformセクションを追加する
version: "3"
services:
db:
image: mysql:8.0
platform: linux/x86_64
(省略)
備考
いけるちゃーいけてる状態である。
参考
Author And Source
この問題について(M1Mac環境でDockerのMySQLを動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/toyoyuto618/items/f225e1b2ab22ca5adf33著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .