Featured image of post Docker创建manifest镜像

Docker创建manifest镜像

Docker创建manifest镜像

构建镜像

首先在 amd64 机器构建 lovelonger**/**perf-test:amd 镜像,然后在 arm64 机器构建 lovelonger/perf-test:arm 镜像,构建完成 push 到 dockerhub。

需要注意的是,manifest文件仅仅是针对于已经在仓库中的镜像!!! 换句话说,就是这个镜像是刚从仓库中pull下来的!如果这个镜像是自己build的,需要先push到仓库中,否则,这个镜像是没有manifest文件的!!同样的,如果你pull了一个镜像,tag了一下,再去看这个manifest文件,也是没有的,因为tag后的镜像不在镜像仓库中。

创建 manifest 列表

1
2
3
4
# docker manifest create MANIFEST_LIST MANIFEST [MANIFEST...]
# docker manifest create lovelonger/perf-test \
      lovelonger/perf-test:amd \
      lovelonger/perf-test:arm

当要修改一个 manifest列表时,可以加入 -a--amend参数。

设置 manifest 列表

1
2
3
4
5
6
7
8
# docker manifest annotate [OPTIONS] MANIFEST_LIST MANIFEST
# docker manifest annotate lovelonger/perf-test \
      lovelonger/perf-test:amd \
      --os linux --arch amd64

# docker manifest annotate lovelonger/perf-test \
      lovelonger/perf-test:arm \
      --os linux --arch arm64 --variant v8

查看 manifest 列表

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# docker manifest inspect lovelonger/perf-test
#  docker manifest inspect lovelonger/perf-test
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 947,
         "digest": "sha256:975589cae8ea492aac12a29d11cf31578a45ca92c32b599ac1030890d9f1e66a",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 947,
         "digest": "sha256:d6bc0f26dc4d8746e7b60df59269c66840e4681f8af613d1da9b16884e402133",
         "platform": {
            "architecture": "arm64",
            "os": "linux",
            "variant": "v8"
         }
      }
   ]
}

推送 manifest 列表

1
# docker manifest push lovelonger/perf-test

推送后可以在 dockerhub 看到详情

https://cdn.jsdelivr.net/gh/tanmx/pic@main/2022/05/PVNygw.png

测试

x84_64 机器上面测试

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# docker run -ti --rm lovelonger/perf-test:latest echo ;uname -a
Unable to find image 'lovelonger/perf-test:latest' locally
latest: Pulling from lovelonger/perf-test
2408cc74d12b: Pull complete
9d980ba59630: Pull complete
a036d2a6b4b7: Pull complete
Digest: sha256:df7c8738c9d7e3ce5058c90dd7b68dce874e4f454ee09bc28edc2727902c6ba5
Status: Downloaded newer image for lovelonger/perf-test:latest

Linux crawler-sel 5.13.0-1027-oracle #32~20.04.1-Ubuntu SMP Fri Apr 15 05:59:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

arm64 机器上面测试

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# docker run -ti --rm lovelonger/perf-test:latest echo ;uname -a
Unable to find image 'lovelonger/perf-test:latest' locally
latest: Pulling from lovelonger/perf-test
b3c136eddcbf: Already exists
abd313fa511b: Pull complete
a036d2a6b4b7: Pull complete
Digest: sha256:df7c8738c9d7e3ce5058c90dd7b68dce874e4f454ee09bc28edc2727902c6ba5
Status: Downloaded newer image for lovelonger/perf-test:latest

Linux fc17e6a10e93 5.13.0-1021-oracle #26~20.04.1-Ubuntu SMP Mon Mar 7 14:30:17 UTC 2022 aarch64 Linux
Licensed under CC BY-NC-SA 4.0
Nickname
Email
Website
0/500
  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • 😂
  • 😀
  • 😅
  • 😊
  • 🙂
  • 🙃
  • 😌
  • 😍
  • 😘
  • 😜
  • 😝
  • 😏
  • 😒
  • 🙄
  • 😳
  • 😡
  • 😔
  • 😫
  • 😱
  • 😭
  • 💩
  • 👻
  • 🙌
  • 🖕
  • 👍
  • 👫
  • 👬
  • 👭
  • 🌚
  • 🌝
  • 🙈
  • 💊
  • 😶
  • 🙏
  • 🍦
  • 🍉
  • 😣
  • 颜文字
  • Emoji
  • Bilibili
0 comments
No comment
一个默默无闻的工程师的日常
Built with Hugo
主题 StackJimmy 设计