新网Logo
首页>主机-资讯>

云计算核心技术Docker教程:使用BuildKit构建容器镜像

登录 注册

云计算核心技术Docker教程:使用BuildKit构建容器镜像

  • 来源:网络
  • 更新日期:2020-09-30

摘要:Docker Build是Docker引擎最常用的功能之一-开发人员,构建团队和发行团队的用户都使用Docker Build。 针对18.09版本的Docker Build增强功能引入了对构建体系结构急需的全面

Docker Build是Docker引擎最常用的功能之一-开发人员,构建团队和发行团队的用户都使用Docker Build。

针对18.09版本的Docker Build增强功能引入了对构建体系结构急需的全面检查。通过集成BuildKit,用户应该看到性能,存储管理,功能功能和安全性方面的改进。

1.可以将使用BuildKit创建的Docker映像推送到Docker Hub,就像使用旧版构建的Docker映像一样

2.适用于旧版构建的Dockerfile格式也将与BuildKit构建一起使用

3.新的--secret命令行选项允许用户传递秘密信息,以使用指定的Dockerfile构建新映像

要求

当前版本的Docker(18.09或更高版本)

下载自定义前端的镜像所需的网络连接

局限性

仅支持构建Linux容器

启用BuildKit构建

全新安装docker的最简单方法是DOCKER_BUILDKIT=1 在调用docker build命令时设置环境变量,例如:

$ DOCKER_BUILDKIT=1 docker build .

要默认启用Docker BuildKit,请将/etc/docker/daemon.jsonfeature中的守护程序配置设置 为true并重新启动守护程序:

{ features: { buildkit: true } }

新的Docker Build命令行构建输出

新的Docker构建BuildKit TTY输出(默认):

新的Docker构建BuildKit普通输出:

重写默认前端

Dockerfile如果您覆盖默认前端,则可以使用中的新语法功能。要覆盖默认前端,请将的第一行设置 Dockerfile为

带有特定前端图像的注释:

# syntax =, e.g. # syntax = docker/dockerfile:1.0-experimental

新的Docker Build机密信息

--secret用于docker build的新标志允许用户以安全的方式传递将在Dockerfile中使用的秘密信息,以构建docker映像,而最终不会存储在最终映像中。

id是传递到中的标识符docker build --secret。该标识符与RUN --mount要在Dockerfile中使用的标识符相关联。

Docker不使用将秘密保存在Dockerfile外部的文件名,因为这可能是敏感信息。

dst将秘密文件重命名为DockerfileRUN命令中要使用的特定文件。

例如,将秘密信息存储在文本文件中:

$ echo \'WARMACHINEROX\' > mysecret.txt

使用指定使用BuildKit前端的Dockerfile docker/dockerfile:1.0-experimental,可以访问秘密。

例如:

# syntax = docker/dockerfile:1.0-experimental

FROM alpine

# shows secret from default secret location:

RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecret

# shows secret from custom secret location:

RUN --mount=type=secret,id=mysecret,dst=/foobar cat /foobar

该Dockerfile只是为了证明可以访问该机密。如您所见,机密信息显示在构建输出中。构建的最终映像将没有秘密文件:

新网箭头云服务器