Rie*_*der 89 linux ubuntu linux-kernel docker docker-machine
背景
我正在使用 docker 来做一个学校项目。具体来说,我提取了一个 ubuntu 映像,这是系统配置:
然后我登录到 docker 容器(ubuntu)并设置elasticsearch。当我尝试跑步时
./bin/elasticsearch
Run Code Online (Sandbox Code Playgroud)
我在 docker 容器的终端内收到以下错误
/lib64/ld-linux-x86-64.so.2: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我主要有两个困惑:
mis*_*mer 187
如果您在 M1 MacBook 上运行此程序,则您可能正在运行 ubuntu 的本机 Arm 映像,而不是模拟的 x86 映像。如果您尝试安装的elasticsearch发行版适用于x86_64,那么它会尝试链接到x86-64-native ld.so,这当然不存在于不同的平台上。
如果他们提供了专门为arm平台提供的软件包,则安装该软件包,或者 - 更有可能 - 显式运行 docker 作为模拟的 x86_64 平台:
docker run --platform linux/x86_64 <image>
Run Code Online (Sandbox Code Playgroud)
tsu*_*suz 31
对于docker-compose,platform: linux/x86_64根据文档添加
services:
my-app:
platform: linux/x86_64
Run Code Online (Sandbox Code Playgroud)
不知道你在容器中运行什么,但对我来说,原因很简单,因为包(Prisma https://github.com/prisma/prisma/issues/8478#)没有找到 openssl 包并将它们安装在alpine映像上失败即使openssl手动安装。
slim通过切换到镜像并安装 openssl 来修复它apt-get update && apt-get -y install openssl。我强烈建议不要更改您的平台,因为使用我的 M1 时,构建时间增加了 200 秒linux/x86_64。
| 归档时间: |
|
| 查看次数: |
101433 次 |
| 最近记录: |