2017-05-20 7 views
1

すでにローカルに構築されたドッカー画像のsha256チェックサムを取得するにはどうすればよいですか?ローカルに構築されたドッカー画像のsha256

私は、派生画像でFROM命令に注釈を付けるために、チェックサムを使用したい:

FROM [email protected]:checksum 

私はすでにdocker inspectからチェックサムを試してみました。

  • Layersリストのチェックサムの最初と最後のどちらも機能しませんでした。
  • "Id"にあるものが機能しませんでした。
  • "Parent"の1つが機能しませんでした。
  • "Container"のいずれかが機能しませんでした。
  • "Image"にあるものが機能しませんでした。

私は最終的に私のドッカー画像の正しいチェックサムを見つけるために絶望的でしたが、正しいチェックサムが見つかりませんでした。私がまだ試していないのは、レイヤーの数のために、すべてのレイヤーがランダムな順序である場合に備えていることです。しかし、そのような場所に置くことは、まずは意味をなさないでしょう。経由を得Docker version 17.05.0-ce, build 89658be(:

それが機能していないときに私が得た画像のDockerfileのディレクトリにdocker build -t <some name> .を実行したときに、私は見誤りがある:

Step 1/7 : FROM [email protected]:<checksum> repository name not found: does not exist or no pull access 

情報

  • ドッカーバージョン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 
    

答えて

1

チェックサムドッカーは、レジストリサーバから来るFROM行を探しています。検査出力では、あなたがRepoDigest部でこれを参照してくださいよ:

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

レジストリサーバにこのイメージをプッシュしていない場合は、このハッシュ値を使用することはできません。

例えば:

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

$ cat df.testsha 
FROM [email protected]: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 [email protected]: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 
+0

私は理解していないが、なぜ誰もがそのような可能性を排除します。私が正しいイメージから派生していることを確認する別の方法はありますか? – Zelphir

+0

私が知っているわけではありません。その目的は、イメージを異なるホスト上に確実に構築し、同じイメージを持つことを知ることです。ホスト間で画像を移動するドッカーの方法は、レジストリを使用することです。 Docker Hubは1つのレジストリです。または、レジストリドッカーイメージ(ハブ上で利用可能)を使用して独自のプライベートレジストリを実行できます。 – BMitch

+0

私は単にこの答えを受け入れるだろうと思います。私は間違った前提から来たようです(ローカルに構築されたレジストリ以外のイメージにはsha256チェックサムを使用できます)。 – Zelphir

関連する問題