谢谢你的建议!
到目前为止,我已经完成了已安装的码头和码头组合,然后遵循了puckel/码头-气流自动机,跳过了可选的构建,然后尝试通过以下方式运行容器:
docker run -d -p 8080:8080 puckel/docker-airflow webserver收到警告:
警告:请求的映像平台(linux/ and 64)与检测到的主机平台(linux/arm/v7)不匹配,也没有请求特定的平台
找到了本期和ran:
docker run -d -p 8080:8080 --platform linux/arm/v7 puckel/docker-airflow:latest webserver然后,这个错误:
docker:来自守护进程的错误响应:带引用puckel/docker的映像:找到了最新的,但与指定的平台不匹配:想要linux/arm/v7,实际: linux/amd64 64。 参见“docker run --help”。
发布于 2021-01-02 09:25:52
可执行文件,即二进制文件,依赖于计算机的体系结构(amd64,arm.)。Docker的图像包含二进制文件。也就是说,码头图像是计算机体系结构依赖的。
因此,如果您查看docker的注册表,则会指定映像的操作系统和体系结构。参考您使用的码头枢纽/puckel/码头-气流,您只能看到它支持的linux/amd64。换句话说,它在arm架构中不起作用。如果您想要运行这个arm架构,有几种方法,但重点是一个。它是用arm (而不是amd64 )作为码头图像来构建原始代码的结果。
在Github.com/puckel/docker-气流中,关于建筑的指导方针是很好的表述。
首先,如果您查看github提供的Dockerfile,它将从图像FROM python:3.7-slim-buster开始。对于相应的python:3.7-slim-buster,它支持linux/arm/v5、linux/arm/v7、linux/arm/v5、linux/arm64/v8。dockerhub/python/3.7-瘦-破坏者
换句话说,您可以构建到arm架构。
我有通过docker命令为多个体系结构创建映像的经验。当然,还有其他方法,但我只简要介绍下面的命令。
Experimental features must not be used in production environments。docker buildx build --platform linux/arm/v5,linux/arm/v7 .https://stackoverflow.com/questions/65537248
复制相似问题