如何使用Docker Buildx构建后缓存中的镜像?
解决Docker Buildx缓存镜像的加载与打包问题
当你未添加--load或--push参数执行docker buildx build后,镜像仅存在于buildx的构建缓存中,可通过以下步骤将其加载到本地Docker镜像列表或打包为tar:
1. 确认当前使用的Buildx构建器
先查看本地的buildx构建器列表,获取目标构建器名称(默认通常为default):
docker buildx ls
2. 加载缓存镜像到本地Docker(显示在docker images中)
执行以下命令,buildx会直接复用已有缓存,无需重新构建,完成后镜像即可出现在docker images结果里:
docker buildx build --builder <你的构建器名称> --load -t docker-image:latest -f Dockerfile .
示例(使用默认构建器):
docker buildx build --builder default --load -t docker-image:latest -f Dockerfile .
3. 将缓存镜像打包为tar包
方式一:直接从缓存导出tar
无需加载到本地,直接生成tar包:
docker buildx build --builder <你的构建器名称> --output type=tar,dest=./docker-image-latest.tar -t docker-image:latest -f Dockerfile .
方式二:先加载到本地再导出tar
如果已经通过步骤2将镜像加载到本地,可使用docker save命令导出:
docker save -o docker-image-latest.tar docker-image:latest
注意:以上命令均会复用之前的构建缓存,不会重复执行构建流程,执行速度较快。
内容的提问来源于stack exchange,提问作者Pranjal Doshi
相关产品推荐
相关产品推荐

