【Docker】docker使用buildx同时构建多平台镜像
在使用docker build的时候,有的时候需要构建非当前平台版本的镜像,比如我在arm的机器上构建x86的镜像,反之亦然。这时候传统的docker build命令就行不通了,需要使用buildx来支持构建多平台镜像。
1 | docker buildx build --platform linux/arm64,linux/amd64 -t ubuntu-x11:18.04 . |
执行这个命令的时候,可能会遇到如下输出(mac下的docker desktop)
1 | ❯ docker buildx build --platform linux/arm64,linux/amd64 -t ubuntu-x11:18.04 . |
这个ERROR的含义是当前的docker builder不支持多平台镜像build,需要切换builder。
1 | # 先创建一个新的 buildx builder,并指定 docker-container 作为驱动 |
这里必须要给命令加上一个--push
选项将镜像push到远端仓库或者本地仓库,因为buildx没有办法直接把镜像写入images中。如果需要push到dockerhub则需要先执行docker login
登录一下。
1 | WARNING: No output specified with docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load |
不过,后续我执行命令的时候一直因为dockerhub没有办法连上导致拉不下原始的镜像,麻了……
1 | dial tcp [2a03:2880:f129:83:face:b00c:0:25de]:443: i/o timeout |
不过本文提到的命令应该是没问题的,就是网络不好有点难顶。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 慕雪的寒舍!
评论