2017-05-20 1 views
1

이미 로컬로 빌드 된 도커 이미지의 sha256 체크섬을 얻으려면 어떻게해야합니까?로컬로 빌드 된 도커 이미지의 sha256

FROM [email protected]:checksum 

이미 시도 체크섬을 docker inspect에서 :

나는 파생 이미지의 FROM 명령에 주석을 체크섬을 사용하고 싶습니다.

  • Layers 목록의 체크섬 중 첫 번째와 마지막 두 개의 체크섬이 작동하지 않았습니다.
  • "Id"에있는 것이 작동하지 않았습니다.
  • "Parent"에있는 것이 작동하지 않았습니다.
  • "Container" 중 하나가 작동하지 않았습니다.
  • "Image"에있는 것이 작동하지 않았습니다.

일부는 필자의 부두 이미지에 대한 올바른 체크섬을 찾기 위해 필사적으로 노력했지만 올바른 체크섬을 찾을 수 없습니다. 레이어의 수가 많아서 아직 시도하지 않은 것은 의 모든 레이어가 무작위 순서에있는 경우에 대비하여 통과하는 것입니다. 하지만 그런 식으로 시작하는 것은 그다지 중요하지 않습니다.

나는 그것이 작동하지 않는 파생 된 이미지의 Dockerfile의 디렉토리에 docker build -t <some name> .을 실행할 때 표시되는 오류는 : Docker version 17.05.0-ce, build 89658be (를 통해 얻을 :

  • 도커 버전

    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는 하나의 레지스트리이거나 레지스트리 도커 이미지 (허브에서 사용 가능)를 사용하여 개인 레지스트리를 실행할 수 있습니다. – BMitch

+0

나는이 대답을 받아 들일 것입니다. 나는 틀린 가정에서 나온 것 같다. (나는 로컬에 빌드 된 비 레지스트리 이미지에 대해 sha256 체크섬을 사용할 수있다.) – Zelphir

관련 문제