Pull 이미지를 위해 Docker Hub에 로그인

5060 단어 tech
2020년 11월부터 Docker Hub에 로그인하지 않은 익명 사용자의 풀 횟수는 IP당 상한선(6시간당 최대 100회)이 설정돼 있어 다음과 같은 오류가 발생하는 경우도 있다.
Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
이러한 상황을 피하기 위해 사용자 인증을 하고 Pull을 진행한다.
참조)
  • https://blog.nijohando.jp/post/2020/drone-pull-image-with-auth/
  • 절차.


    Docker Hub에 액세스하는 토큰을 발행합니다.


  • Docker Hub에 로그인합니다.

  • 'New Access Token'을 통해 액세스 토큰을 생성합니다.

  • 사용자 이름과 액세스 토큰을 결합하여 기본적으로 64화하다.
    DOCKERHUB_USERNAME=(ユーザー名)
    DOCKERHUB_ACCESS_TOKEN=(アクセストークン)
    DOCKERHUB_AUTH=$(echo -n "${DOCKERHUB_USERNAME}:${DOCKERHUB_ACCESS_TOKEN}" | base64)
    
  • .drone.yml로 설정


    참조)Pulling Private Images
    .drone.yml에서pull_시크릿을 설명하여 docker pull의 인증 정보를 지정합니다.dockerconfig Secret 이름)
    image_pull_secrets:
      - dockerconfig
    

    Secrets에서 인증 정보 설정


    Secrets에 로그인합니다.

  • SecretName: dockerconfig

  • SecretValue
    {
      "auths": {
        "https://index.docker.io/v1/": {
          "auth": "(発行したアクセストークン)"
        }
      }
    }
    
  • Secrets에서 인증 정보 설정(Encerypted Secrets의 경우)


    참조)Secrets - Encrypted
    OSS 버전에서는 Encerypted만 지원됩니다.drone.yml에서 암호화하여 기술합니다.

  • Drene을 사용하여 암호화합니다.
    export DRONE_SERVER=https://drone.example.jp
    export DRONE_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    REPOSITORY_NAME=(設定先リポジトリ名)
    drone encrypt "${REPOSITORY_NAME}" "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"${DOCKERHUB_AUTH}\"}}}"
    

  • 암호화된 데이터를drone.yml의 시크릿에 추서하다.
    kind: secret
    name: dockerconfig
    data: (暗号化した認証情報)
    
  • 좋은 웹페이지 즐겨찾기