Docker 构建多平台镜像

docker buildx 插件简介

docker buildx 插件是 docker 19.03 引入的一个新的实验性插件,支持 --platform 可以同步构建多种架构的 docker 镜像。

启用 buildx

# 临时启用
export DOCKER_CLI_EXPERIMENTAL=enabled

# 永久启用
vim /etc/docker/damon.json
{
    "experimental": true
}
image.png

安装 docker

# 添加 docker 安装源
vim /etc/yum.repos.d/docker.repo
[Docker-CE]
name=Docker Repo
baseurl=https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/8/x86_64/stable/
enabled=1
gpgcheck=0

# 更新源
yum makecache

# 安装 docker
yum install docker-ce -y

# 启动 docker,并设置开机自启
systemctl enable --now docker

安装模拟器构建非本地架构 docker 镜像

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

运行结果如下:

image.png

使用 buildx 构建镜像

# 创建构建实例
docker buildx create --user --name mybuild

# 启动构建实例
docker buildx inspect mybuild --bootstrap

# 查看构建实例
docker buildx ls
image.png

基于 Dockerfile 构建多平台镜像

# 基于 Dockerfile 构建并导出到本地镜像,导出的镜像如果与当前环境平台不同,是无法构建成功的
docker buildx build -t jenkins:latest --platform=linux/amd64 . --load

# 做好远程仓库认证,基于 Dockerfile 构建镜像,并直接推送到远程仓库中
docker login
docker buildx build -t jenkins:latest --platform=linux/amd64,linux/arm64 . --push

# --load	将构建好的镜像 load 到本地
# --push	将构建好的镜像推送到远程仓库,需要提前登录到远程镜像仓库
image.png

Dockerfile 支持如下多架构相关的变量

# 构架类型,如:amd64、arm64
TAREGTMARCH

# 构建镜像的目标平台,如:linux/amd64、linux/arm64
TARGETPLATFORM

版权声明:
作者:陳斯托洛夫斯記
链接:https://jkboy.com/archives/10544.html
来源:随风的博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Docker 构建多平台镜像
docker buildx 插件简介 docker buildx 插件是 docker 19.03 引入的一个新的实验性插件,支持 --platform 可以同步构建多种架构的 docker 镜像。 启用 build……
<<上一篇
下一篇>>