Docker在19.03引入了一个新的特性,使得Docker可以构建不同CPU体系结构的镜像,比如ARM镜像,这是不必引入模拟器的情况下,Docker自身所提供的原生统一构建机制,但是使用时需要进行设定才能进行使用,这篇文章以此实验特性的开启为例,如何暂时开启或者永久开启的方式进行说明。
文章目录
版本要求
- 版本要求
- 环境说明
- 问题现象
- 对应方式
-
- 暂定打开方式(环境变量)
- 永久打开方式(系统设定)
- 总结
此特性对于版本的要求如下所示:
- Docker : 19.03
- Docker Desktop Enterprise : 2.1.0
- Docker Desktop Edge version :2.0.4.0
- docker版本
liumiaocn:~ liumiao$ docker version Client: Docker Engine - Community Cloud integration 0.1.18 Version: 19.03.13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 16:58:31 2020 OS/Arch: darwin/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.13 API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:07:04 2020 OS/Arch: linux/amd64 Experimental: true containerd: Version: v1.3.7 GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683 liumiaocn:~ liumiao$
-
Docker Desktop community
直接使用时可能会出现如下问题
liumiaocn:~ liumiao$ docker buildx version docker: 'buildx' is not a docker command. See 'docker --help' liumiaocn:~ liumiao$对应方式
在满足上述版本的基础之上,需要满足如下信息即可使用buildx了
- 需要保证如下设定为true
liumiaocn:~ liumiao$ docker info |grep Experimental Experimental: true liumiaocn:~ liumiao$暂定打开方式(环境变量)
- 设定环境变量DOCKER_CLI_EXPERIMENTAL
liumiaocn:~ liumiao$ export DOCKER_CLI_EXPERIMENTAL=enabled liumiaocn:~ liumiao$
此时即可使用试验特性buildx了
liumiaocn:~ liumiao$ docker buildx version github.com/docker/buildx v0.4.2-tp-docker fb7b670b764764dc4716df3eba07ffdae4cc47b2 liumiaocn:~ liumiao$永久打开方式(系统设定)
-
也可以在系统设定中打开
通过环境变量DOCKER_CLI_EXPERIMENTAL或者系统设定可以打开Docker的实验特性。