Вот как вы можете запустить его в любом случае

Если вы попытаетесь запустить официальные образы mysql: 5.7, 5.6 или 5.5 на новом Mac, вы получите следующее сообщение:

Oracle официально не поддерживает старые версии MySQL 5.x на ARM. Вы можете увидеть это в обзоре поддерживаемых платформ:



Так что мы можем сделать?

Запустите MySQL 8

Более новый MySQL 8 поддерживается на ARM, и официальный образ докера поддерживает его.

Но, если ваш проект все равно не планировал переходить на более новую версию MySQL, вам, вероятно, не следует запускать MySQL 8 локально в качестве обходного пути.

Запустить MariaDB

Форк MySQL в основном совместим со своим братом и может использоваться в качестве замены. И официально поддерживает ARM64.

Но здесь вы должны знать, что ваша локальная среда может не совпадать с живой средой.

Вопрос, на который я не могу ответить, заключается в том, какую версию выбрать для лучшей поддержки MySQL 5.7. Я попробовал последнюю версию 10 (10.8), и она отлично подошла для моего варианта использования.

Запустите MySQL 5.7 неофициально

Исходный код MySQL открыт, и ничто не мешает вам просто скомпилировать его для ARM64. В Debian и Ubuntu уже много лет есть образы mysql-server-5.7 для arm, хотя они несколько более устаревшие, чем варианты x86.

Есть также уже готовые изображения. Мне очень повезло с образом biarms/mysql:5.7. Он имеет те же параметры и переменные среды, что и официальный образ докера, поэтому его можно заменить.



Вы даже можете пометить его локально, чтобы он использовался вместо официального образа Docker.

# docker pull biarms/mysql:5.7
# docker tag biarms/mysql:5.7 mysql:5.7

Затем каждый проект, ссылающийся на mysql:5.7, будет автоматически и неосознанно использовать изображение biarms.

Запустите MySQL 5.7 с помощью эмуляции

Это должно быть последним средством из-за производительности, но если вам нужна такая же версия где-то еще, а производительность в этот момент не имеет значения, docker отлично эмулирует x86.

docker run --rm \
  --platform linux/amd64 \
  -e MYSQL_ROOT_PASSWORD=password \
  -p 3306:3306 \
  mysql:5.7

Обратите внимание, что эта эмуляция использует QEMU внутри существующей виртуальной машины Linux. Так что переводом занимается не Rosetta 2. Но это удивительно полезно.

Запустите Docker на другой машине

Это мошенничество, но это все же вариант, особенно если у вас есть несколько образов, не имеющих версии x86. У меня есть целая инструкция, как это сделать:



Заключение

Как видите, у вас есть много вариантов для игры. Особенно неофициальный путь, вероятно, путь.

Но способ эмуляции тоже интересен. Это означает, что вы можете запустить все в крайнем случае, даже если это неоптимально.