searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

docker构建跨架构镜像

2025-07-08 01:28:56
1
0

1手动拉取基础镜像,创建多架构镜像

1.1 拉取镜像

  1. pull amd64架构镜像

    docker pull golang:1.24.4-alpine3.22 --platform=amd64
    docker image tag golang:1.24.4-alpine3.22 harbor.cn/XXX/golang:1.24.4-alpine3.22-amd64
    
  2. pull arm64架构镜像

    docker pull golang:1.24.4-alpine3.22 --platform=arm64
    docker image tag golang:1.24.4-alpine3.22 harbor.cn/XXX/golang:1.24.4-alpine3.22-arm64
    

1.2 推送镜像

  1. push amd64架构镜像

    docker push harbor.cn/XXX/golang:1.24.4-alpine3.22-amd64
    
  2. push arm64架构镜像

    docker push harbor.cn/XXX/golang:1.24.4-alpine3.22-arm64
    

4.3 制作manifest

  1. create

    docker manifest create harbor.cn/XXX/golang:1.24.4-alpine3.22 \
    harbor.cn/XXX/golang:1.24.4-alpine3.22-amd64 \
    harbor.cn/XXX/golang:1.24.4-alpine3.22-arm64
    
  2. push

    docker manifest push harbor.cn/XXX/golang:1.24.4-alpine3.22
    

2 利用docker buildx跨平台构建

2.1 确认版本支持

docker buildx version

2.2 创建多平台支持的Builder实例

# 创建 BuildKit 配置文件--镜像源,若不需要镜像源,可以不配
mkdir -p ~/.docker/buildkit
cat > ~/.docker/buildkit/buildkitd.toml <<EOF
[registry."docker.io"]
  mirrors = [
  	"https://registry.cn-hangzhou.aliyuncs.com",
  	"https://dockerproxy.com"
  	] 
EOF

# 创建构建器(使用 docker-container 驱动)
docker buildx create \
  --use \
  --name multi-builder \
  --driver docker-container \
  --config ~/.docker/buildkit/buildkitd.toml \
  --buildkitd-flags "--allow-insecure-entitlement security.insecure"

docker buildx inspect --bootstrap  # 初始化
# 查看构建器
# docker buildx ls
# 删除构建器
# docker buildx rm multiarch-builder

2.3 Dockerfile

FROM alpine:3.22 #需要基础镜像支持跨架构

RUN echo "https://mirrors.ustc.edu.cn/alpine/v3.22/main" > /etc/apk/repositories \
    && echo "https://mirrors.ustc.edu.cn/alpine/v3.22/community" >> /etc/apk/repositories \
    && apk update \
    && apk add --no-cache curl \
    && rm -rf /var/cache/apk/*

2.4 执行编译命令

docker-buildx.sh

docker buildx build \
-t harbor.cn/XXX/base:1.0.0-alpine3.22 \
--platform=linux/amd64,linux/arm64 . --push
0条评论
作者已关闭评论
陈****发
5文章数
0粉丝数
陈****发
5 文章 | 0 粉丝
原创

docker构建跨架构镜像

2025-07-08 01:28:56
1
0

1手动拉取基础镜像,创建多架构镜像

1.1 拉取镜像

  1. pull amd64架构镜像

    docker pull golang:1.24.4-alpine3.22 --platform=amd64
    docker image tag golang:1.24.4-alpine3.22 harbor.cn/XXX/golang:1.24.4-alpine3.22-amd64
    
  2. pull arm64架构镜像

    docker pull golang:1.24.4-alpine3.22 --platform=arm64
    docker image tag golang:1.24.4-alpine3.22 harbor.cn/XXX/golang:1.24.4-alpine3.22-arm64
    

1.2 推送镜像

  1. push amd64架构镜像

    docker push harbor.cn/XXX/golang:1.24.4-alpine3.22-amd64
    
  2. push arm64架构镜像

    docker push harbor.cn/XXX/golang:1.24.4-alpine3.22-arm64
    

4.3 制作manifest

  1. create

    docker manifest create harbor.cn/XXX/golang:1.24.4-alpine3.22 \
    harbor.cn/XXX/golang:1.24.4-alpine3.22-amd64 \
    harbor.cn/XXX/golang:1.24.4-alpine3.22-arm64
    
  2. push

    docker manifest push harbor.cn/XXX/golang:1.24.4-alpine3.22
    

2 利用docker buildx跨平台构建

2.1 确认版本支持

docker buildx version

2.2 创建多平台支持的Builder实例

# 创建 BuildKit 配置文件--镜像源,若不需要镜像源,可以不配
mkdir -p ~/.docker/buildkit
cat > ~/.docker/buildkit/buildkitd.toml <<EOF
[registry."docker.io"]
  mirrors = [
  	"https://registry.cn-hangzhou.aliyuncs.com",
  	"https://dockerproxy.com"
  	] 
EOF

# 创建构建器(使用 docker-container 驱动)
docker buildx create \
  --use \
  --name multi-builder \
  --driver docker-container \
  --config ~/.docker/buildkit/buildkitd.toml \
  --buildkitd-flags "--allow-insecure-entitlement security.insecure"

docker buildx inspect --bootstrap  # 初始化
# 查看构建器
# docker buildx ls
# 删除构建器
# docker buildx rm multiarch-builder

2.3 Dockerfile

FROM alpine:3.22 #需要基础镜像支持跨架构

RUN echo "https://mirrors.ustc.edu.cn/alpine/v3.22/main" > /etc/apk/repositories \
    && echo "https://mirrors.ustc.edu.cn/alpine/v3.22/community" >> /etc/apk/repositories \
    && apk update \
    && apk add --no-cache curl \
    && rm -rf /var/cache/apk/*

2.4 执行编译命令

docker-buildx.sh

docker buildx build \
-t harbor.cn/XXX/base:1.0.0-alpine3.22 \
--platform=linux/amd64,linux/arm64 . --push
文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0