当前位置: 首页 > 知识库问答 >
问题:

在m1处理器中运行Docker映像

李兴庆
2023-03-14

我只能在带有docker预览版的macbook air m1中播放,并且我无法通过docker-compose文件运行8.0.22版的mysql映像。

docker-撰写集

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

我怎样才能解决这个问题?

共有3个答案

钱锐
2023-03-14

我在M1 Mac上也很难处理X86(amd64)图像。但在您的特殊情况下,我建议您只使用MariaDB(图片MariaDB)。到目前为止,我尝试过的所有东西都与MySQL完全兼容,并且MariaDB可用于ARM64。

乐正烨熠
2023-03-14

M1是ARMv8(aarch64)架构,大多数映像是X86(amd64)。允许从另一个架构运行容器的基于bitfmt的整个仿真过程对于Docker for Mac的ARMv8版本仍然不稳定,因此您需要等待一些时间。

克服这个问题的一种方法是,通过从一些linux发行版开始,比如alpinedebianubuntu,并安装mysql服务器(与裸机安装相同),为ARM64构建自己的mysql映像。

您可以在docker hub中找到许多标记为ARM64v8的容器,因此这可能是创建映像的良好起点。

宋臻
2023-03-14

我们刚刚遇到了这个问题,我从这个答案中得出了解决方案。您可以在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和Intel Mac,这个解决方案使mysql映像可用于两者。

 类似资料:
  • 问题内容: 我使用Java创建了一个Docker映像,并将jar文件复制到该映像中。我的Dockerfile是: 执行以下命令后: 在控制台中,我看到了应用程序的输出,一切都很好。但是当我停止图像时,我不知道如何再次运行图像?当我执行以下命令时: 该应用程序再次运行,但是在我的Dockerfile中,我已经编写了此命令。如何在不使用此命令的情况下运行映像并使应用程序自动运行? 问题答案: 图像和容

  • 这个问题与这个问题相关:Docker-如何在postgres容器中运行psql命令? 但是上面提供的解决方案只在手动执行任务时有效,而这里的用户希望使用docker-compose自动执行任务。 因为在执行运行时,postgresql服务器还没有启动! 有没有办法克服这个限制?

  • 问题内容: 我从dockerfile构建了Docker映像。我看到映像已成功构建,但是该如何处理?它不应该能够作为容器运行吗? 问题答案: 运行它的具体方法取决于您是否为图像指定了标签/名称。 使用名称(让我们使用 Ubuntu ): 没有名称,只需使用ID: 请参阅 Docker运行参考 以获取更多信息。

  • 问题内容: 我正在尝试在Ubuntu容器中下载Debian软件包,如下所示: 我懂了 我已经安装了docker,如下所示: 如何下载文件? 问题答案: 您需要先安装它。创建一个新的,并在其中安装wget: 然后,构建该图像: 最后,运行它:

  • 我们有一个在Docker容器中运行的Java Spring Boot应用程序。它基于openjdk:13 jdk alpine。我们将其部署到Linux机器上,但我们也能够在Windows机器上以及基于Intel的iMac上本地运行它。 然而,我们发现它不能在基于ARM的苹果笔记本电脑上正常运行。我们得到的例外是基本的Java错误,比如“找不到符号Java.class[]”,以及其他看起来像JVM

  • 问题内容: 我已经尝试过将docker和jenkins一起使用,两者都安装在我的机器上(w10),并且我使用jankins运行docker镜像。但是,当我按照jenkins文档中的示例(来自doc的示例)时,它不起作用。不涉及时,不同的管道脚本可以工作,我还尝试从jenkins config接口添加。 管道脚本 错误堆栈 我在SO上发现了类似的问题\(相同但没有明确的解决方案) 问题答案: 您的工