簡體   English   中英

Docker 鏡像在 m1 處理器中運行

[英]Docker image run in m1 processor

我只能在我的 macbook air m1 中播放 docker 預覽,我無法通過 docker-compose 文件運行版本 8.0.22 的 mysql 的圖像。

docker-compose套裝

我運行的命令是: docker-compose up -d mysql

我怎么解決這個問題?

M1 是 ARMv8 (aarch64) 架構,大部分鏡像是 X86 (amd64)。 對於 Mac 版 Docker 的 ARMv8 版本,基於bitfmt允許從另一個架構運行容器的整個仿真過程仍然不穩定,因此您需要等待一些時間。

One way to overcome this problem is to build your own image of mysql for ARM64, by starting from some of the linux distributions such as alpine , debian , ubuntu and installing the mysql servers (same as you would have done on a bare-metal installation )。

您可以在標記為ARM64v8的 docker 集線器中找到很多可用的容器,因此這可以作為創建映像的良好起點。

我還在 M1 Mac 上處理了 X86 (amd64) 圖像。 但在您的特定情況下,我建議您簡單地使用 MariaDB(圖像 mariadb)。 到目前為止,我嘗試的所有東西都與 MySQL 完全兼容,並且 MariaDB 可用於 ARM64。

我們剛剛遇到了這個問題,我從這個答案中得到了解決方案。 您可以在docker-compose文件中指定您的平台,因此在您的情況下,它看起來像:

services:
  mysql:
    image: mysql:8.0.22
    platform: linux/x86_64
    container_name: mysqldb
    restart: always
    ports:
      - 3306:3306
    volumes:
      - mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=test
      - MYSQL_DATABASE=DATA

在我們公司,我們使用 M1 和英特爾 Mac,此解決方案使 mysql 圖像可用於兩者。

您還可以使用mariadb作為支持 M1 (arm64) 的mysql的直接替代品:

    mysql:
        restart: unless-stopped
        image: mysql:5.7.14

變成:

    mysql:
        restart: unless-stopped
        image: mariadb:10.2.41

以下是 MariaDB 圖像的最新標簽列表:

https://hub.docker.com/_/mariadb?tab=tags

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM