我正在尝试在docker项目中使用MacBook M1,这个项目依赖于lib confluent-kafka-go,因此必须使用以下方式。
两种方法都有效,但有什么区别呢?
我看到的是,第一个使用多平台图像,第二个使用特殊的amd64/golang图像.
docker run --platform linux/amd64 --rm -v $PWD:/build -w /build -e GOOS=linux -e GOARCH=amd64 golang:1.17-buster go builddocker run --rm -v "$PWD":/build -w /build -e GOOS=linux -e GOARCH=amd64 amd64/golang:1.17 go build发布于 2022-10-10 06:25:44
这就是““共享”和“简单”标记”之间的区别:
mongo:4.0-xenial当前有用于amd64和arm64v8的映像。
Docker守护进程负责为主机体系结构选择适当的映像。所以:
docker run mongo:4.0-xenial能够在单个平台上跨体系结构“做正确的事情”(Linux在mongo:4.0中是异种的)。mongo:4.0能够在Linux上和支持的许多不同版本的Windows上大致运行(如Windows 2016,其中docker守护进程再次负责根据主机平台和版本确定适当的映像)。在您的例子中,码头格朗形象提供了两个标记
golang:1.17-buster是一个共享标记,您将从其中通过--platform选项提取linux/amd64。
如果您没有指定平台,将收到如下警告:
The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm/v7) and no specific platform was requestedamd64/golang:1.17是一个简单的标记,已经为linux/amd64量身定做https://stackoverflow.com/questions/74010617
复制相似问题