专业编程基础技术教程

网站首页 > 基础教程 正文

Docker镜像构建系列(5)-docker buildx build和docker build的区别

ccvgpt 2025-05-07 23:13:09 基础教程 1 ℃

docker有两个命令可以完成镜像构建,分别是:

docker buildx build ...
docker build ...

那么他们的区别是什么呢?

Docker镜像构建系列(5)-docker buildx build和docker build的区别

通过查阅相关文档,buildx是Docker 官方提供的一个构建工具,可以和Docker Engine 19.03及之后的版本一起使用;自Docker Engine 23.0和Docker Desktop 4.19起,buildx是docker的默认构建客户端。

在Docker Engine 23以后的版本上,通过命令行的帮助信息可以看到,两个命令其实是别名关系

也就是说,两者是等价的,但实际验证发现,部分参数的默认值却不一样,比如--builder参数,docker buildx build的默认值是当前builder(命令:docker buildx ls可以查看,名称结尾带*的是当前builder);而docker build的--builder默认值是default。所以,以下两条构建命令完全等效

docker buildx build --platform linux/arm64,linux/amd64 -t curl:1.0 .
docker build --builder mybld --platform linux/arm64,linux/amd64 -t curl:1.0 .

但是需要注意,是docker buildx build和docker build等价,并不是docker buildx和docker build等价,因为buildx除了镜像构建,还有构建器管理(docker buildx create/rm/stop)等功能;不过docker也都为它们做了别名映射,即docker buildx *** = docker builder ***,所以,以下三条命令是完全等效的的

docker buildx build --platform linux/arm64,linux/amd64 -t curl:1.0 .
docker builder build --builder mybld --platform linux/arm64,linux/amd64 -t curl:1.0 .
docker build --builder mybld --platform linux/arm64,linux/amd64 -t curl:1.0 .

一句话总结:

docker buildx build等效于docker build --builder <builder_name>

Tags:

最近发表
标签列表