프로그램을 Docker 이미지로 만들면 다른 컴퓨터에서도 쉽게 실행할 수 있다고 했다.
그렇다면 다음 질문 “이 이미지를 어떻게 다른 컴퓨터로 전달하는가?”이다.
이론적으로는 USB로 옮겨도 되고, 파일로 압축해 이메일로 보내도 된다.
하지만 실무에서는 그런 방식은 거의 사용하지 않는다.
대신 이미지를 호스팅해주는 서비스에 업로드해두고,
필요할 때마다 다운로드해서 사용하는 방식이 일반적이다.
Docker 이미지 레지스트리란 무엇인가
이미지를 저장하고 배포하기 위한 서비스를 **컨테이너 레지스트리(Container Registry)**라고 한다.
대표적인 서비스는 다음과 같다.
- Docker Hub
- Amazon Elastic Container Registry
- Azure Container Registry
이 중에서 학습용이나 개인 프로젝트에서는 Docker Hub가 가장 많이 사용된다.
일부 기능은 무료로 사용할 수 있고, 설정도 단순하다.
Docker Hub의 기본 개념 : Repository

Docker Hub에 로그인하면 Repository를 만들 수 있다.
Repository는 한마디로 말해 이미지 보관용 폴더다.
- 하나의 Repository에는
- 여러 버전의 이미지가
- 태그(tag) 형태로 저장된다
사용자이름/레포지토리이름:태그
Docker Hub Repository 생성하기

- Docker Hub 사이트에 접속해 회원가입 후 로그인한다.
- Create repository 버튼을 클릭한다.
- Repository 이름을 지정한다.
- Public / Private 중 하나를 선택한다.
주의할 점은 다음과 같다.
- 무료 계정은 Private Repository를 1개만 만들 수 있다.
- Public Repository는 여러 개 생성할 수 있다.
학습용이나 공개해도 되는 프로젝트라면 Public으로 만들어도 무방하다.
Docker Hub 화면 오른쪽을 보면 명령어 예시가 나온다.
docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname
핵심은 딱 두 단계다.
- 이미지 이름을 Repository 이름에 맞게 변경
- Docker Hub로 업로드(push)

여기서는 myserver라는 레포지토리명을 만들었다.
내아이디/레포지토리이름 형식으로 Repository가 설정된다.
Repository에 내 이미지 올리기
1단계: docker tag로 이미지 이름 변경하기
이미 다음과 같은 Docker 이미지가 하나 만들어져 있다고 가정하자.
nodeserver:v1

아래 Actions에서 Push to Docker Hub를 누르면 빠르게 Docker Hub에 업로드가 가능하다.

그런데 만약 터미널에서 수행하고 싶다면?
1단계: docker tag로 이미지 이름 변경하기
이 이미지를 Docker Hub에 올리려면 이름을 다음 형식으로 바꿔야 한다.
내아이디/레포지토리이름:태그
현재 내아이디가 gksyb4235이고, 레포지토리이름이 myserver이다.
따라서 여기서는 이름을 다음과 같이 바꿔야 한다.
이를 위해 사용하는 명령어가 docker tag다.
docker tag nodeserver:v1 내아이디/레포지토리명:태그명

이 명령어의 의미는 다음과 같다.
- 기존 이미지(nodeserver:v1)에
- 내 레포지토리에 하당하는 새로운 이름을 하나 더 붙인다.
이 명령어를 실행하면 이미지가 2개로 보이지만 용량이 2배로 늘어나는 것은 아니다.
이유는 간단하다.
- 두 이미지는 같은 이미지 ID를 가리킨다
- 하나의 이미지는 여러 이름(tag)을 가질 수 있다
즉, 이름만 여러 개일 뿐 실제 데이터는 하나다.
2단계: docker push로 업로드하기
이제 실제로 Docker Hub에 업로드한다.
docker push 내아이디/레포지토리명:태그명
엔터를 누르면 이미지 레이어들이 하나씩 업로드된다.
에러가 없다면 업로드는 정상적으로 완료된 것이다.

만약 인증 에러가 발생한다면 다음을 먼저 실행한다.
docker login
Docker Hub 계정으로 로그인한 뒤 다시 push하면 된다.
업로드가 끝난 뒤 Docker Hub 웹페이지를 새로고침하면 방금 올린 이미지가 Repository에 표시된다.

다른 컴퓨터에서 이미지 내려받기
이제 이 이미지는 어디서든 사용할 수 있다.
다른 컴퓨터에서 다음 명령어를 실행하면 된다.
docker pull 내아이디/레포지토리명:태그명
Docker Desktop에서 Hub 버튼을 눌러서 내려받을 수도 있지만, 실무에서는 보통 터미널에서 pull 명령어를 사용한다.
여러 이미지는 어떻게 관리하는 것이 좋을까
실제 프로젝트에서는 이미지가 하나만 있는 경우가 드물다.
예를 들면 다음과 같다.
- 백엔드 서버 이미지
- 프론트엔드 이미지
- 데이터베이스 이미지
이런 경우 두 가지 선택지가 있다.
1. 하나의 Repository에 여러 태그 사용
myapp:backend
myapp:frontend
myapp:db
2. 이미지별로 Repository 분리
my-backend:v1
my-frontend:v1
my-db:v1
실무에서는 각 이미지마다 별도의 Repository를 만드는 방식을 더 많이 사용한다.
구조가 단순하고 관리하기 쉽기 때문이다.
추가로 Public Repository에 이미지를 업로드하면 누구나 이미지를 다운로드할 수 있다.
따라서 다음과 같은 내용이 들어 있다면 주의해야 한다.
- 소스 코드
- 환경 변수 파일
- API 키
- 비밀번호
- 내부 설정 정보
이런 정보가 포함된 이미지는 반드시 Private Repository에 올리는 것이 좋다.
또는 아예 이미지에 포함되지 않도록 설계하는 것이 바람직하다.
'Tool 활용법 > Docker 활용법' 카테고리의 다른 글
| Docker 네트워크로 nginx와 웹서버 연결하기 (0) | 2026.02.06 |
|---|---|
| Docker 컨테이너 간 통신이 필요한 이유와 Nginx Reverse Proxy (0) | 2026.02.06 |
| [Docker 기초 4] Dockerfile 성능 최적화 방법 (Cache, Multi-Stage build) (0) | 2026.02.06 |
| [Docker 기초 3] Docker Container 필수 명령어 정리 (0) | 2026.02.06 |
| [Docker 기초 2] Dockerfile로 내 프로그램을 Docker Image로 만들기 (0) | 2026.02.06 |