도커 콘텐츠 트러스트(DCT)

5210 단어
DCT(Docker Content Trust)는 원격 Docker 레지스트리에서 주고받는 데이터에 디지털 서명을 사용할 수 있는 기능을 제공합니다. 이러한 서명을 통해 특정 이미지 태그의 무결성 및 게시자에 대한 클라이언트 측 또는 런타임 검증이 가능합니다.

전제 조건


  • 최신 Docker 데스크톱
  • Docker 허브 계정
  • 도커 컨테이너 이미지
    ## 문서
    DCT 참조
    Documentation
    여기

  • 전개



    이미지를 위한 도커 리포지토리 만들기


  • Docker Hub으로 이동하여 docker 허브 계정
  • 으로 로그인합니다.
  • 저장소 생성을 클릭하고 이름을 "테스트"로 지정합니다.
  • 다음과 같아야 합니다.



  • 다음을 사용하여 CLI에서 Docker 로그인 수행




    Docker login 
    


  • 자격 증명을 입력하면 바로 사용할 수 있습니다.

  • 도커 이미지에 서명하려면 먼저 키를 생성해야 합니다...



    키를 생성하려면 CLI에서 이 명령을 실행하십시오.

      docker trust key generate signature
    


  • 이 "서명"은 키에 부여할 이름이며 작업 디렉토리에 .pub 확장자로 저장됩니다
  • .
  • 이 명령을 실행한 후 암호를 입력하고 반복하라는 메시지가 표시됩니다.

  • 서명자를 만들고 저장소에 추가하려면 다음 명령을 실행하십시오.

    docker trust signer add --key signature.pub [signer's name] [your repository's name]
    


  • 저장소 이름은 다음과 같습니다 --> example/test
  • 루트 키 및 저장소에 대한 암호를 입력하고 반복해야 합니다.

  • 저장소에 이미지 서명 및 푸시


  • 먼저 컨테이너 이미지를 커밋하겠습니다.

  •  docker commit [Image ID] [Repository Name]
    


  • 다음에서 이미지 ID를 찾을 수 있습니다.

  • docker ps
    


  • 서명되지 않은 이미지를 참조용으로 푸시하자
    -먼저 이미지를 unsigned-image로 태그 지정

  •  docker image tag [Image ID] [Repository Name]:unsigned-image
    


  • 이제 다음을 사용하여 이미지를 푸시합니다.

  •  docker push [Repository Name]:unsigned-image
    


  • 이제 태그에 서명하고 동일한 이미지에 서명합니다.
    이미지에 태그 지정

  • docker image tag [Image ID] [Repository Name]:signed-image
    


    로 이미지에 서명

    docker trust sign [Repository Name]:signed-image
    


  • 암호를 다시 입력해야 합니다
  • .

    서명된 이미지 실행에 대한 추가 정보를 보려면

    docker trust inspect --pretty [Repository Name]:signed-image
    


    다음을 사용하여 서명된 이미지 푸시

    docker push [Repository Name]:signed-image
    
    The push refers to repository [docker.io/shakunt/test]
    059ff50d778b: Layer already exists
    c4e64d78638e: Layer already exists
    5f70bf18a086: Layer already exists
    0cd0f4e90e0c: Layer already exists
    e4a7f8c5002b: Layer already exists
    7cc0623bd7a8: Layer already exists
    f1859b30ca6b: Layer already exists
    6a35d52a66fd: Layer already exists
    fbd7d5451c69: Layer already exists
    4fc242d58285: Layer already exists
    trust-image-signed: digest: sha256:f6274d55e7ae079737180c7cb5----7387fb6a87297ef486edbc1bb16f4d0 size: 2409
    


    신뢰 환경 설정 및 서명 및 서명되지 않은 이미지 가져오기



    신뢰 환경을 설정하려면 다음을 실행하십시오.

    export DOCKER_CONTENT_TRUST=1
    


    이미지를 뽑아보자
  • 서명되지 않은 이미지

  • docker pull [Repository Name]:unsigned-image
    No valid trust data for unsigned-image
    


  • 서명된 이미지

  • docker pull [Repository Name]:signed-image
    Pull (1 of 1): shakunt/test:signed-image@sha256:f6274d55e7ae079737180c7cb5b02f386edbc1bb16f4d0
    docker.io/shakunt/test@sha256:f6274d55e7ae079737180c7cb5b02f3767387fb6a87bb16f4d0: Pulling from shakunt/test
    Digest: sha256:f6274d55e7ae079737180c77fb6a87297ef486edbc1bb16f4d0
    Status: Image is up to date for shakunt/test@sha256:f6274d551bb16f4d0
    Tagging shakunt/test@sha256:f6274d55e7ae079732f3767387fb6a87297ef486edbc1bb16f4d0 as shakunt/test:signed-image
    docker.io/shakunt/test:signed-image
    


    감사합니다. 이 게시물이 도움이 되었기를 바랍니다.




    좋은 웹페이지 즐겨찾기