Docker CLI docker buildx 常用命令

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker buildx 常用命令。

1、docker  buildx 简介

docker build是从Dockerfile构建一个映像。Dockerfile是一个用来构建镜像的文本文件。docker  buildx也是用来构建镜像的,使用BuildKit扩展构建功能。默认的docker build 是不支持构架跨平台镜像的,但在 Docker 19.03+ 版本中可以使用 docker buildx build命令使用 BuildKit 构建镜像。该命令支持 --platform 参数可以同时构建支持多种系统架构的 Docker 镜像。使用docker buildx build命令的--platform参数可以指定要构建的架构的镜像。

参考地址:https://github.com/docker/buildx

2、docker  buildx的安装

在Windows和macOs上,Docker Desktop已经包含了Docker Buildx,无需额外安装,可通过命令docker buildx version 可以查看是否安装buildx。

1)配置Experimental

使用docker buildx还需要开实验室特性,判断方法如下图,


开启需要将Experimental设置为true

2)Docker客户端配置

 vi ~/.docker/config.json

添加配置如下:

{
"experimental": "enabled"
}

注意:config.json配置文件不存在,新建配置文件即可。

3)Docker服务端配置

 vi /etc/docker/daemon.json

添加配置如下:

{
"experimental": true
}

注意:config.json配置文件不存在,新建配置文件即可。

4)使用配置文件生效

systemctl daemon-reload
systemctl restart docker

5)使用docker version判断是否配置成功

6)安装docker buildx

下载地址:https://github.com/docker/buildx/releases/tag/v0.9.1

需要下载对服务器架构的程序包,将其拷贝至/usr/local/lib/docker/cli-plugins目录:

mkdir -p /usr/local/lib/docker/cli-plugins
mv buildx-v0.9.1.linux-amd64 /usr/local/lib/docker/cli-plugins/docker-buildx
chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx

7)判断安装成功

docker buildx version

3、docker  buildx 模拟器的安装

模拟器可以让buildx支持跨CPU架构编译。

1)判断是否安装模拟器

docker buildx ls

2)安装模拟器

docker run --privileged --rm tonistiigi/binfmt --install all

3)离线安装

如服务器环境不能连接网络,不能使用上面的命令安装,可以将镜像导出到服务器上,然后在进行安装,

导出镜像:

docker pull tonistiigi/binfmt:latest@sha256:01882a96113f38b1928a5797c52f7eaa7e39acf6cc15ec541c6e8428f3c2347d
docker save -o tonistiigi_binfmt.tar f1d8c13be37e

加载镜像:

docker load -i tonistiigi_binfmt.tar

安装模拟器:

docker run --privileged --rm tonistiigi/binfmt --install all

4)验证模拟器是否安装成功

cat /proc/sys/fs/binfmt_misc/qemu-x86_64
enabled

输出 enabled 则安装成功,qemu-x86_64是amd,arm是qemu-aarch64

4、选项说明

名称,简称

默认

描述

--builder

覆盖已配置的builder实例

5、子命令

命令

描述

docker buildx bake

从文件构建

docker buildx build

开始构建

docker buildx create

创建一个新的builder实例

docker buildx du

磁盘使用情况

docker buildx imagetools

在registry中处理镜像的命令

docker buildx inspect

查当前builder实例

docker buildx ls

列出 builder 实现

docker buildx prune

移除构建缓存

docker buildx rm

删除 builder 实现

docker buildx stop

停止 builder 实现

docker buildx use

设置当前 builder 实例

docker buildx version

显示buildx版本信息

参考文档:https://docs.docker.com/engine/reference/commandline/buildx/

推荐阅读
cjavapy编程之路首页