m1 如何 docker 跨平台 build

2021-08-12 09:48:33 +08:00
 nutting

build 跨平台的镜像,似乎支持,找文章搞了一下,就是没看懂,自己的 dockerfile 不行?成功后本地 images 里没有,谁搞过啊,到底啥意思

2294 次点击
所在节点    macOS
9 条回复
sunwei0325
2021-08-12 09:52:58 +08:00
docker buildx build -t xxxxxxx --platform=linux/amd64 . --push
nutting
2021-08-12 10:25:48 +08:00
@sunwei0325 谢谢。似乎对了,不过如果 push 不方便提交,可以改为 --load,images 就有了。然后 Linux/arm64 似乎有问题,amd64 可以
programV2
2021-08-12 10:47:09 +08:00
@nutting
@sunwei0325 大佬们,请问 Linux AMD64 的 centos 7 镜像如何在 m1 docker 里运行呢?
@nutting
typetraits
2021-08-12 14:08:43 +08:00
@programV2 #3 运行不了,只能换 aarch64 镜像,或者使用 qemu 之类的模拟器,在模拟器里跑 Docker,但是这样效率极低
typetraits
2021-08-12 14:10:20 +08:00
@programV2 #3 不好意思,说错了,之前以为不能运行,但是刚才查了下可以通过 Rosetta 2 模拟运行
https://docs.docker.com/docker-for-mac/apple-silicon/
swulling
2021-08-12 14:11:30 +08:00
@typetraits
@programV2 用 Docker for Desktop,可以自动起模拟器运行 x86 镜像

https://docs.docker.com/docker-for-mac/apple-silicon/


部分镜像可能不兼容,如 MySQL,但是多数镜像可以运行的
swulling
2021-08-12 14:12:31 +08:00
@typetraits 其实不是通过 Rosetta 2,是 Docker Mac 版自带了一个 Qemu-x86 。
typetraits
2021-08-12 14:16:18 +08:00
@swulling #7 原来如此,没有使用过,我用的都是 arm 镜像,不知道这个 qemu 跑起来的具体性能怎么样
swulling
2021-08-12 14:18:28 +08:00
@typetraits 对凑吧,能跑,比 Rosetta 2 差很多。有 arm 版镜像尽量用 arm 版的。

主要是它也没做到 100%兼容

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/795250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX