[Docker] 이미지 배포하기

4377 단어 dockerdevopsdevops

Docker 이미지 배포하기

Image를 Registry로 push하여 업로드하는 과정을 통해 Image를 배포할 수 있다.

Registry

  • Docker Hub Registry
  • GitHub Packages Container Registry
  • Amazon Elastic Container Registry
  • Google Container Registry
  • Harbor Registry

Registry는 Docker Image를 공유하기 위한 서버 애플리케이션이다.

Docker Hub

Docker Hub에서 회원가입 후 로그인을 진행한다.

Repositories로 이동한 후 Create Repository를 클릭한다.

생성할 Repository의 이름을 입력한 후 공개 여부를 선택하고 Create를 클릭한다. Private은 계정당 무료로 하나만을 제공하기 때문에 더 필요한 경우 비용을 지불해야 한다.

생성된 Repository를 확인한 후 사전 준비를 마친다.

CLI 환경에서 Docker Hub로 이미지를 업로드하기 위해 먼저 로그인을 진행한다.

$ docker login

docker push를 통해 원하는 이미지를 업로드한다.

$ docker push <username>/<image>:<tag>

# ex) docker push jiheon/apache-server:1.0

Docker Hub에 이미지가 업로드된 것을 확인할 수 있다.

docker pull을 통해 Docker Hub에 업로드된 이미지를 다운로드할 수 있다.

$ docker pull <username>/<image>:<tag>

# ex) docker pull jiheon/apache-server:1.0

GitHub

사용 방법에 대하여 자세한 설명은 Working with the Container registry에서 참고할 수 있습니다.

먼저 Container Registry에 인증하기 위한 Personal access token을 생성해야 한다.

우측 상단 Profile > Settings > 좌측 Developer settings > 좌측 Personal access tokens로 이동하여 Generate new token을 클릭한다.

Personal access token의 이름과 유효기간을 설정하고, 범위를 write/delete:packages로 선택한 후 Generate token 버튼을 클릭하면 생성된다.

CLI 환경에서 생성한 Personal access token을 환경 변수로 저장한다.

$ export CR_PAT=YOUR_TOKEN

Container Registry에 로그인한다.

$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin

docker push를 통해 원하는 이미지를 업로드한다.

$ docker push ghcr.io/<username>/<image>:<tag>

# ex) docker push ghcr.io/jiheon/apache-server:1.0

GitHub Packages에 이미지가 업로드된 것을 확인할 수 있다.

기본적으로 Private으로 되므로 Packages settings에서 Public으로 변경이 가능하다. 그리고 Connect Repository을 통해 원하는 Repository를 선택하여 연결이 가능하다.

References

좋은 웹페이지 즐겨찾기