Docker-compose 在 M1 mac 上的 VM (Parallels) 中

Posted

技术标签:

【中文标题】Docker-compose 在 M1 mac 上的 VM (Parallels) 中【英文标题】:Docker-compose in a VM (Parallels) on a M1 mac 【发布时间】:2021-08-15 19:19:05 【问题描述】:

目前我正在尝试让 docker-compose 在我的带有 M1 处理器的 Mac 上的 VM(Ubuntu 20.04)中运行。我已经通过 curl 在我的 VM 上安装了 docker 和 docker 机器。 Docker-compose 我尝试安装如下:

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

安装似乎成功,但如果我尝试通过“sudo docker-compose --version”检查版本,它会显示:“/usr/local/bin/docker-compose: 1: Not: not found” .

在 ubuntu 中,由于我的 M1,它说它是 aarch64。

有谁知道如何解决这个问题?提前致谢。

【问题讨论】:

【参考方案1】:

我认为您需要执行chmod 744 /usr/local/bin/docker-compose 才能使其只能由其所有者执行,其他所有人都可以读取。 chown root /usr/local/bin/docker-compose 将使其成为所有者 root(因此您只能使用 sudo 运行它)。

/usr/local/bin 也可能不在您的路径中。通过输入echo $PATH 进行检查。如果它不在那里,您可以将 docker-compose 符号链接到可识别的路径 (sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose) 或执行 export $PATH="/usr/local/bin:$PATH" 以将其添加到您的路径中。如果您执行which docker-compose,它应该会显示出来(显示程序的路径)。

【讨论】:

我按照你的建议试过了。 /usr/local/bin 不是路径的一部分,所以谢谢!不幸的是,“docker-compose --version”仍然抛出“/usr/local/bin/docker-compose: 1: Not: not found”。我尝试通过 curl 再次下载它,Ubuntu 现在弹出一个错误,说:“检测到系统程序问题”。 “sudo which docker-compose”说它在 /usr/local/bin/docker-compose”。感谢您的详细说明。 它可能不会让你覆盖这样的可执行二进制文件:) 顺便说一下,你不需要 sudo 来使用 docker compose。但是如果我没记错的话,我认为你应该把你的用户放在 docker 组中【参考方案2】:

您会看到“/usr/local/bin/docker-compose: 1: Not: not found”,因为这是文件的内容 - curl 收到 404 响应并将状态消息写入目标文件。 在 arm64 ubuntu 上安装 docker-compose 有几种选择:

    使用python:
sudo apt update
sudo apt install -y python3-pip libffi-dev
sudo pip3 install docker-compose
    安装 beta v2 docker-compose beta(在 mac 或 linux 上):
sudo curl -L https://github.com/docker/compose-cli/releases/download/v2.0.0-beta.3/docker-compose-`uname -s`-arm64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

或者从https://github.com/docker/compose-cli/releases/tag/v2.0.0-beta.3手动下载。 该工具的 API 会有所不同。

您还可以跟踪此讨论以获得正确的解决方案 - https://github.com/docker/compose/issues/6831。

【讨论】:

以上是关于Docker-compose 在 M1 mac 上的 VM (Parallels) 中的主要内容,如果未能解决你的问题,请参考以下文章

使用docker-compose部署达梦DEM管理工具,mac m1系列适用

在 M1 Mac 上安装节点

Firebase 在 M1 Mac 上损坏

Flutter 项目无法在 Mac M1 上构建

Pip install matplotlib 在 M1 Mac 上失败

tensorflow 在 Mac M1 上崩溃