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

Docker构建多架构镜像

2023-07-21 02:45:07
6
0

对于有多个系统架构镜像部署的需求,需要打包多架构的镜像,实现一个镜像名多个架构镜像并能根据架构自动获取对应架构的镜像。以下以arm、x86双架构镜像举例:

方式1.  docker manifest

(1) 打包好arm和x86的单独镜像并推送到仓库,分别为 xxx:base_image_arm 和 xxx:base_image_x86 (xxx为仓库名)

(2) 创建镜像manifest文件

      docker manifest create --amend --insecure xxx:base_image xxx:base_image_arm xxx:base_image_amd

(3) 为manifest文件添加架构信息

     docker manifest annotate xxx:base_image xxx:base_image_arm --arch arm64

     docker manifest annotate xxx:base_image xxx:base_image_amd --arch amd64

(4) 推送镜像

    docker manifest push --insecure xxx:base_image

(5) 拉取镜像

   docker pull xxx:base_image

   在不同架构的机器上拉取镜像会获得不同的镜像

方式2. docker buildx

(1) 打包镜像

    docker buildx build -t xxx:base_image --platform=linux/arm64,linux/amd64 . --push

    docker buildx 可以实现在一台机器上打包多个架构的镜像,方便简单。但是打包非本机器架构的镜像时docker会构造虚拟机打包,所以可能打包很慢

(2) 拉取镜像

    docker pull xxx:base_image

0条评论
作者已关闭评论
嘻嘻哈哈
3文章数
0粉丝数
嘻嘻哈哈
3 文章 | 0 粉丝
嘻嘻哈哈
3文章数
0粉丝数
嘻嘻哈哈
3 文章 | 0 粉丝
原创

Docker构建多架构镜像

2023-07-21 02:45:07
6
0

对于有多个系统架构镜像部署的需求,需要打包多架构的镜像,实现一个镜像名多个架构镜像并能根据架构自动获取对应架构的镜像。以下以arm、x86双架构镜像举例:

方式1.  docker manifest

(1) 打包好arm和x86的单独镜像并推送到仓库,分别为 xxx:base_image_arm 和 xxx:base_image_x86 (xxx为仓库名)

(2) 创建镜像manifest文件

      docker manifest create --amend --insecure xxx:base_image xxx:base_image_arm xxx:base_image_amd

(3) 为manifest文件添加架构信息

     docker manifest annotate xxx:base_image xxx:base_image_arm --arch arm64

     docker manifest annotate xxx:base_image xxx:base_image_amd --arch amd64

(4) 推送镜像

    docker manifest push --insecure xxx:base_image

(5) 拉取镜像

   docker pull xxx:base_image

   在不同架构的机器上拉取镜像会获得不同的镜像

方式2. docker buildx

(1) 打包镜像

    docker buildx build -t xxx:base_image --platform=linux/arm64,linux/amd64 . --push

    docker buildx 可以实现在一台机器上打包多个架构的镜像,方便简单。但是打包非本机器架构的镜像时docker会构造虚拟机打包,所以可能打包很慢

(2) 拉取镜像

    docker pull xxx:base_image

文章来自个人专栏
乱七八糟
3 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
1
0