当地build造docker形象的sha256

我如何获得已经在本地构build的docker镜像的sha256校验和?

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

 FROM name@sha256:checksum 

我已经尝试从docker inspect校验。

  • Layers列表中的第一个和最后一个校验和都没有工作。
  • "Id"那个不起作用。
  • "Parent"的一个没有工作。
  • "Container"的一个没有工作。
  • "Image"那个不起作用。

其中一些我只尝试了绝望,最终find我的docker图像正确的校验和,但我找不到正确的校验和。 只有我还没有尝试,因为层数,是通过所有的层次,如果他们是随机的顺序。 但是把它们放在那里就像这样开始是没有意义的。

我运行docker build -t <some name> .时看到的错误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 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工具正在从registry服务器中寻找FROM行。 在检查输出中,你会在RepoDigest部分看到这个:

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

如果你没有把这个图像推送到registry服务器,那么你将无法使用这个散列值。

例如:

 $ 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