공개 레지스트리에 이미지를 올리거나 비공개 이미지를 받으려면 docker login 으로 자격증명을 저장해야 한다. 자격증명은 ~/.docker/config.json 에 base64 로 남으므로 공용 서버에서는 작업 후 docker logout 한다. Kubernetes 에서 같은 자격증명을 쓰려면 Registry Secret 추가 를 본다.
GitHub 계정의 Personal Access Token(classic)을 만든다. 경로는 [Settings] > [Developer settings] > [Personal access tokens] > [Tokens (classic)] > [Generate new token] 이고, 권한은 다음을 준다.
| 권한 | 용도 |
|---|---|
read:packages |
pull |
write:packages |
push |
delete:packages |
이미지 삭제 |
토큰을 표준 입력으로 넘기면 셸 히스토리에 남지 않는다.
echo $GHCR_TOKEN | docker login ghcr.io -u $GITHUB_USERNAME --password-stdin
이미지 이름은 ghcr.io/<소유자>/<이미지>:<태그> 형식이다.
docker login
계정 암호 대신 Docker Hub 의 Personal access token 을 쓴다.
docker login harbor.example.com
HTTP 나 사설 인증서를 쓰는 Harbor 는 Private repository 설정 - Harbor 의 insecure · 인증서 설정을 먼저 한다.