gpt4 book ai didi

docker - 本地构建的docker镜像的sha256

转载 作者:行者123 更新时间:2023-12-02 01:16:28 29 4
gpt4 key购买 nike

如何获取已本地构建的 docker 镜像的 sha256 校验和?

我想使用校验和来注释 FROM派生图像中的指令:

FROM name@sha256:checksum

我已经尝试过来自 docker inspect 的校验和.

  • 既不是 Layers 中的第一个也不是最后一个校验和列表有效。
  • "Id" 中的那个没有成功。
  • "Parent" 中的那个没有成功。
  • "Container" 中的那个没有成功。
  • "Image" 中的那个没有成功。

其中一些我只是出于绝望才尝试最终找到我的 docker 镜像的正确校验和,但我找不到正确的校验和。由于层数的原因,我唯一没有尝试过的就是遍历所有层,以防它们按随机顺序排列。但像这样把它们放在那里一开始就没有意义。

运行 docker build -t <some name> . 时看到的错误不工作时派生镜像的Dockerfile目录中为:

Step 1/7 : FROM name@sha256:<checksum> repository name not found: does not exist or no pull access

信息

  • Docker 版本:Docker version 17.05.0-ce, build 89658be (通过 docker --version 获得)
  • docker info 的输出:

    Containers: 0
    Running: 0
    Paused: 0
    Stopped: 0
    Images: 3841
    Server Version: 17.05.0-ce
    Storage Driver: aufs
    Root Dir: /var/lib/docker/aufs
    Backing Filesystem: extfs
    Dirs: 2620
    Dirperm1 Supported: true
    Logging Driver: json-file
    Cgroup Driver: cgroupfs
    Plugins:
    Volume: local
    Network: bridge host macvlan null overlay
    Swarm: inactive
    Runtimes: runc
    Default Runtime: runc
    Init Binary: docker-init
    containerd version: 9048e5e50717ea4497b757314bad98ea3763c145
    runc version: 9c2d8d184e5da67c95d601382adf14862e4f2228
    init version: 949e6fa
    Security Options:
    apparmor
    seccomp
    Profile: default
    Kernel Version: 4.4.0-78-generic
    Operating System: Ubuntu 16.04.2 LTS
    OSType: linux
    Architecture: x86_64
    CPUs: 4
    Total Memory: 7.684GiB
    Name: xiaolong-hp-pavilion
    ID: QCJS:JPK4:KC7J:6MYF:WWCA:XQM2:7AF7:HWWI:BRZK:GT6B:D2NP:OJFS
    Docker Root Dir: /var/lib/docker
    Debug Mode (client): false
    Debug Mode (server): false
    Registry: https://index.docker.io/v1/
    Experimental: false
    Insecure Registries:
    127.0.0.0/8
    Live Restore Enabled: false

    WARNING: No swap limit support

最佳答案

docker 在 FROM 行中查找的校验和来自注册表服务器。在检查输出中,您将在 RepoDigest 部分看到这一点:

docker inspect -f '{{.RepoDigests}}' $image_name

如果您尚未将此镜像推送到注册服务器,那么您将无法使用此哈希值。

例如:

$ docker inspect -f '{{.RepoDigests}}' busybox:latest
[busybox@sha256:32f093055929dbc23dec4d03e09dfe971f5973a9ca5cf059cbfb644c206aa83f]

$ cat df.testsha
FROM busybox@sha256:32f093055929dbc23dec4d03e09dfe971f5973a9ca5cf059cbfb644c206aa83f
CMD echo "hello world"

$ docker build -f df.testsha -t test-sha .
Sending build context to Docker daemon 23.35MB
Step 1/2 : FROM busybox@sha256:32f093055929dbc23dec4d03e09dfe971f5973a9ca5cf059cbfb644c206aa83f
---> 00f017a8c2a6
Step 2/2 : CMD echo "hello world"
---> Running in c516e5b6a694
---> 68dc47866183
Removing intermediate container c516e5b6a694
Successfully built 68dc47866183
Successfully tagged test-sha:latest

$ docker run --rm test-sha
hello world

关于docker - 本地构建的docker镜像的sha256,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44087012/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com