首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头拉与平台选项不是拉正确的架构形象。

码头拉与平台选项不是拉正确的架构形象。
EN

Stack Overflow用户
提问于 2022-06-19 03:42:20
回答 3查看 159关注 0票数 1

我想下载用于amd64和arm64架构的oraclelinux的docker映像。但两者都显示了相同的sha256摘要。为什么会这样呢?

代码语言:javascript
复制
docker pull --platform=linux/amd64 oraclelinux:7-slim
Trying to pull repository docker.io/library/oraclelinux ...
7-slim: Pulling from docker.io/library/oraclelinux
Digest: sha256:7a46c0134e2cad2d15a98eac50c89f9e0f4640c0461b838672d41ea0710d75c5
Status: Downloaded newer image for oraclelinux:7-slim
oraclelinux:7-slim
代码语言:javascript
复制
docker pull --platform=linux/arm64 oraclelinux:7-slim
Trying to pull repository docker.io/library/oraclelinux ...
7-slim: Pulling from docker.io/library/oraclelinux
Digest: sha256:7a46c0134e2cad2d15a98eac50c89f9e0f4640c0461b838672d41ea0710d75c5
Status: Downloaded newer image for oraclelinux:7-slim
oraclelinux:7-slim

正如在如何在gitlab-ci.yml中指定图像平台中提到的,我想在Gitlab CD中分别使用这两种方法。我该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-06-19 19:40:51

停靠者列出的摘要是清单列表。当图像被提取时,它将被取消引用到特定于平台的清单,但是docker列出了清单列表以确保可移植性(相同的摘要可以用于其他多个平台)。

代码语言:javascript
复制
$ regctl manifest get oraclelinux:7-slim
Name:        oraclelinux:7-slim
MediaType:   application/vnd.docker.distribution.manifest.list.v2+json
Digest:      sha256:7a46c0134e2cad2d15a98eac50c89f9e0f4640c0461b838672d41ea0710d75c5
             
Manifests:   
             
  Name:      docker.io/library/oraclelinux:7-slim@sha256:eccab04a8a5299ea5ae6cc51ad697aa01012ff2732c999360c4d218dd9451440
  Digest:    sha256:eccab04a8a5299ea5ae6cc51ad697aa01012ff2732c999360c4d218dd9451440
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/amd64
             
  Name:      docker.io/library/oraclelinux:7-slim@sha256:fd4d966f65ddc0ac1727570766563e2f9d0dd8e2557234d179a017e244e67979
  Digest:    sha256:fd4d966f65ddc0ac1727570766563e2f9d0dd8e2557234d179a017e244e67979
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  Platform:  linux/arm64
票数 1
EN

Stack Overflow用户

发布于 2022-06-22 03:17:20

正如@BMitch所提到的,这个sha256来自清单列表,其中包含所有的体系结构。

由于Docker映像的多个体系结构/平台标记具有不同的摘要,所以可以使用使用文件摘要提取码头形象 (而不是使用标记)来提取所需的体系结构/平台。

正如我们在奥拉克伦中所看到的--来自arm64sha256fd4d966f65ddc0ac1727570766563e2f9d0dd8e2557234d179a017e244e67979,所以您可以通过运行以下命令来获取这个图像:

代码语言:javascript
复制
$ docker pull oraclelinux@sha256:fd4d966f65ddc0ac1727570766563e2f9d0dd8e2557234d179a017e244e67979 

但是看起来oraclelinux有另一个存储库来存储arm64图像,所以您也许可以运行:

代码语言:javascript
复制
$ docker pull oraclelinux:7-slim
$ docker pull arm64v8/oraclelinux:7-slim

对你有用吗?

票数 1
EN

Stack Overflow用户

发布于 2022-06-19 03:51:07

添加before_script

  • 导出IMAGE_NAME
  • 导出IMAGE_TAG

然后剧本

  • 码头拉$IMAGE_NAME:$IMAGE_TAG

调整这个以最适合你。

我把两样都拉了。迪夫能帮你。

代码语言:javascript
复制
diff <(docker inspect 6b9fd09833be) <(docker inspect 554de8d676bd)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72674124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档