LoginSignup
110
70

More than 3 years have passed since last update.

M1Mac環境でDockerのMySQLを動かす

Last updated at Posted at 2021-03-16

 概要

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オプションを追加する

Dockerfile
FROM --platform=linux/x86_64 mysql:8.0
(省略)

docker-compose.ymlの場合

platformセクションを追加する

docker-compose.yml
version: "3"
services:
  db:
    image: mysql:8.0
    platform: linux/x86_64
(省略)

備考

いけるちゃーいけてる状態である。

参考

110
70
1

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
110
70