Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

csct3434

[도커 공식문서 학습] 6. 도커 핵심 개념 정리 - 레지스트리 본문

Docker

[도커 공식문서 학습] 6. 도커 핵심 개념 정리 - 레지스트리

csct3434 2025. 3. 30. 02:21

개요

이전 글에서 컨테이너 이미지란 무엇이며 어떻게 작동하는지 알아보았습니다. 하지만 이렇게 생성한 이미지를 어디에 저장할까요? 로컬 컴퓨터에 저장할 수도 있지만, 다른 개발자와 공유하거나 여러 환경에서 사용하려면 어떻게 해야 할까요? 바로 컨테이너 이미지 레지스트리를 활용하면 됩니다.

컨테이너 이미지 레지스트리란?

컨테이너 이미지 레지스트리는 컨테이너 이미지를 저장하고 공유할 수 있는 중앙 저장소입니다. 레지스트리는 공개 또는 비공개로 운영될 수 있습니다. 대표적인 공개 레지스트리는 Docker Hub이며, 기본적으로 Docker에서 제공하는 기본 레지스트리입니다.

Docker Hub 외에도 다양한 컨테이너 이미지 레지스트리가 존재합니다:

  • Amazon Elastic Container Registry(ECR)
  • Azure Container Registry(ACR)
  • Google Container Registry(GCR)
  • Harbor, JFrog Artifactory, GitLab Container Registry

기업 내부에서 운영하는 경우, 자체적인 비공개 레지스트리를 구축할 수도 있습니다.

레지스트리(Registry) vs. 저장소(Repository)

컨테이너 레지스트리를 다루다 보면 '레지스트리'와 '저장소(Repository)'라는 용어를 혼용하는 경우가 많습니다. 하지만 이 둘은 다른 개념입니다.

  • 레지스트리(Registry): 컨테이너 이미지를 저장하고 관리하는 중앙 저장소입니다.
  • 저장소(Repository): 하나의 프로젝트와 관련된 컨테이너 이미지들의 집합입니다. 각 저장소에는 여러 개의 버전(태그)이 포함될 수 있습니다.

쉽게 말해, 레지스트리는 전체적인 이미지 저장소이고, 저장소는 특정 프로젝트에 대한 이미지 모음입니다.

실습: Docker Hub에 컨테이너 이미지 업로드하기

이제 직접 Docker Hub에 컨테이너 이미지를 업로드하는 과정을 실습해보겠습니다.

1. Docker Hub 계정 생성

먼저, Docker Hub에 가입해야 합니다. 구글 계정 또는 GitHub 계정을 이용하여 간편하게 가입할 수 있습니다.

2. 새로운 저장소(Repository) 생성

  1. Docker Hub에 로그인합니다.
  2. 오른쪽 상단의 Create Repository 버튼을 클릭합니다.
  3. Repository Name에 docker-quickstart를 입력합니다.
  4. Visibility를 "Public"으로 설정합니다.
  5. Create 버튼을 클릭하여 저장소를 생성합니다.

이제 Docker Hub에서 사용할 수 있는 저장소가 준비되었습니다.

3. Docker Desktop에 로그인

Docker Desktop을 실행한 후, 오른쪽 상단의 Sign in 버튼을 클릭하여 Docker Hub 계정으로 로그인합니다.

4. 샘플 Node.js 애플리케이션 다운로드

Docker 이미지를 생성하려면 먼저 프로젝트가 필요합니다. 예제용으로 GitHub의 샘플 Node.js 프로젝트를 사용하겠습니다.

# GitHub에서 샘플 프로젝트를 클론
git clone https://github.com/dockersamples/helloworld-demo-node

# 프로젝트 디렉터리로 이동
cd helloworld-demo-node

이 저장소에는 Dockerfile이 포함되어 있으며, 이를 활용하여 Docker 이미지를 생성할 수 있습니다.

5. Docker 이미지 빌드

Dockerfile을 이용하여 컨테이너 이미지를 빌드합니다. YOUR_DOCKER_USERNAME을 본인의 Docker Hub 사용자명으로 변경하세요.

docker build -t YOUR_DOCKER_USERNAME/docker-quickstart .

빌드가 완료되었는지 확인하려면 다음 명령어를 실행하세요.

docker images

출력 예시:

REPOSITORY                                 TAG       IMAGE ID       CREATED         SIZE
YOUR_DOCKER_USERNAME/docker-quickstart   latest    476de364f70e   2 minutes ago   170MB

6. 컨테이너 실행

다음 명령어를 실행하여 컨테이너를 실행합니다. (8080 포트를 사용)

docker run -d -p 8080:8080 YOUR_DOCKER_USERNAME/docker-quickstart

브라우저에서 http://localhost:8080에 접속하여 정상적으로 실행되는지 확인하세요.

7. Docker 이미지 태그 추가

Docker 이미지는 태그를 추가하여 버전 관리를 할 수 있습니다.

docker tag YOUR_DOCKER_USERNAME/docker-quickstart YOUR_DOCKER_USERNAME/docker-quickstart:1.0

8. Docker Hub에 이미지 업로드

이제 Docker Hub에 컨테이너 이미지를 업로드합니다.

docker push YOUR_DOCKER_USERNAME/docker-quickstart:1.0

Docker Hub에서 자신의 저장소로 이동하여 Tags 섹션을 확인하면 방금 업로드한 이미지가 보일 것입니다.

정리

이번 글에서는 컨테이너 이미지 레지스트리에 대해 알아보고, Docker Hub를 이용하여 컨테이너 이미지를 빌드하고 업로드하는 방법을 실습했습니다.

 

원문

https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-a-registry/

 

What is a registry?

What is a registry? This Docker Concept will explain what a registry is, explore their interoperability, and have you interact with registries.

docs.docker.com