云计算核心技术Docker教程:使用BuildKit构建容器镜像
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只是为了证明可以访问该机密。如您所见,机密信息显示在构建输出中。构建的最终映像将没有秘密文件: (编辑:ASP站长网) |