반갑습니다. 저는|기업가이자, 엔지니어입니다.
Github Container Registry 사용하기

Github Container Registry 사용하기

Tags
container registry
ghcr.io
Published
발행일 - 2022년 5월 18일
Author
Eugene Jeon (전유진)
AuthorLink

Github Container Registry

Container Image 를 저장하는 방법은 다양하다.
AWS, GCP, Azure 와 같은 Cloud Service 를 이용할 수 있으나 유료이다. Docker Hub 를 이용하는 방법이 있도 있다. 하지만, 6개월 동안 활동이 없으면 이미지를 제거하는 정책과 API rate 제한이 생기면서 이용이 까다로워졌다.
때마침 2020년 Github Container Registry 가 발표되었다.
 
Github Container Registry Docs

이미지 생성과 Github 저장소 등록

Create Personal Access Token

Container Registry 를 이용하려면, 먼저 토큰이 필요하다.
https://github.com/settings/tokens 에서 패키지에 대한 권한을 가진 토큰을 생성하자.
write:packages, read:packages, delete:packages 권한을 활성화 해야 한다.
notion image
 
토큰이 생성되면, 해시값을 확인할 수 있다. 단, 토큰값은 생성직후에만 확인가능하다. 잊어버리면 지우고 새로 생성해야 하니, 안전하게 보관하도록하자.
notion image
 

Github Container Registry Login

위 생성한 토큰을 t-ghcr-token 파일로 만들어두었다면, 아래 명령어로 쉽게 로그인할 수 있다.
(bash)
$ cat t-ghcr-token | docker login ghcr.io -u <USERNAME> --password-stdin Login Succeeded
 

Container Image Push

Github Container Registry 는 아래와 같은 형태로 이미지 이름과 태그를 달아주어야 하니, 이미지를 원격 저장소로 처음 푸시해보는 분들은 조금 주의하도록 한다.
💡
ghcr.io/<USERNAME>/<이미지이름>:<태그>
 
이제 만들어진 이미지를 푸시하면 된다.
참고로 위와 같이 이미지 이름과 태그를 달아주는 것을, 태깅한다고 부르기도 한다.
(bash)
# tagging $ docker tag ghcr.io/eugenejeonme/node-api:v1 # push $ docker push ghcr.io/eugenejeonme/node-api:v1
 

Github 이미지 저장소 관리

올린 이미지는 계정의 패키지 탭에서 확인할 수 있다. → https://github.com/<USERNAME>?tab=packages
notion image
 
이미지를 올리면, Private (비공개) 설정이 되어 있다.
이미지 이름을 클릭해서 버전과 pull 방법 등을 자세히 확인할 수 있다.
notion image
 
하단에는 이미지를 특정 저장소로 연결할 수 있는 방법을 소개해 주고 있다.
연결하면 해당 저장소의 README 파일을 표시할 수 도 있고, 저장소의 issue, discussion 링크도 추가해준다.
notion image
 
중요한 걸 깜빡할 뻔 했다.
Github Container Registry 에서는 Private 공간은 용량 제한이 있다. Public 공간은 용량 제한이 없으니 마음껏 이용하자.
 
패키지 설정에서 Visibility 를 변경할 수 있다.
notion image
 

Loading Comments...