Docker hub 사용방법

choiJaewon·2026년 2월 20일
post-thumbnail

개요

저번시간에는 Docker의 고급 기능과 Docker compose에 대해서 알아 보았다. 이번 포스팅에서는 이미지를 저장하여 주는 클라우드 서비스인 Docker hub에 대해서 알아보고자 한다.


1.) Docker hub란 무엇인가?

Docker image를 저장하고 공유할 수 있는 클라우드 기반의 저장소 서비스

Docker Hub는 Docker image를 처음, 관리, 공유할 수 있는 가장 대표적인 플랫폼으로 널리 사용되고 있다.


2.) 주요 기능

  1. 이미지 저장 및 다운로드 : 개발자가 생성한 Docker image를 저장할 수 있는 중앙 저장소를 제공하기 때문에 저장된 image는 언제든지 다운로드받아 사용할 수 있다.

  2. 공유 및 협업 : 다른 사람들과 공유하거나 제한된 사용자만 접근할 수 있도록 설정할 수 있어 공유 및 협업이 가능하다.

  3. Official Image 제공 : Docker 팀에서 직접 관리하는 Docker official image들을 제공한다.

  4. 빠른 환경 구축 : Docker Hub 커뮤니티가 제공하는 수많은 image들을 활용하여 프로젝트에 적합한 환경을 빠르게 구축할 수 있다.

이러한 Docker Hub를 활용하면 손쉬운 이미지 배포, 효율적인 협업, 그리고 코드 변경과 이미지를 자동으로 빌드하고 배포할 수 있어 DevOps 환경에서 생산성을 높일 수 있다 (자동화된 워크플로우).


3.) Docker Hub = 도커 이미지 전용 GitHub

역할
GitHub소스코드를 올리고 공유하는 저장소
Docker Hub도커 이미지를 올리고 공유하는 저장소

동작 방식

[ 내 로컬 PC ]                [ Docker Hub ]              [ EC2 서버 ]

docker build → 이미지 생성
docker push  → ─────────────→ 이미지 저장소에 업로드
                               (jaewon3640/recycle-app)
                                       ↓ docker pull
                               EC2가 이미지 다운로드
                               docker compose up → 서버 실행

Docker Hub 쓰면 뭐가 좋냐?

EC2에서 빌드 안 해도 된다.

# Docker Hub 없이 (EC2에서 빌드)
EC2에서 gradle build + npm run build 직접 실행
→ t2.micro 사양으로 빌드하면 느리고 메모리 부족 위험

# Docker Hub 있으면 (로컬에서 빌드 후 push)
EC2는 그냥 pull 받아서 실행만 하면 됨
→ 빠르고 안정적

배포 흐름 요약

① Docker Hub 계정 생성

② 로컬에서 이미지 빌드
    docker build -t jaewon3640/recycle-app .
    docker build -t jaewon3640/recycle-frontend .

③ Docker Hub에 push
    docker push jaewon3640/recycle-app
    docker push jaewon3640/recycle-frontend

④ EC2에서 pull 후 실행
    docker compose up -d

4.) Docker hub 사용방법


Docker Hub 회원가입

직접 hub.docker.com 에 접속해서 회원가입을 진행한다.

위 링크로 접속 후 우측 상단의 Sign up 버튼을 통해 회원가입을 진행할 수 있다.


Shell에서 Docker Hub 로그인하기

사용자는 서버에서 docker image가 수정될 때마다 push를 할 수 있도록 docker login을 해주어야 한다.

회원가입시 설정한 username을 통해 login이 가능하다.

$ (sudo) docker login -u <username>

로그인 성공 시 아래와 같이 Login Succeeded 메시지가 출력된다.

Login Succeeded

docker push

Docker Hub에 이미지를 push 해주는 명령어를 실행시켜보자.

(sudo) docker push <docker_hub_username>/<image_name>:<tag>

이떄 로컬에서 이미지 빌드 (push 전에 이미지가 빌드 되어있어야 된다!)

docker build -t jaewon3640/recycle-app .
docker build -t jaewon3640/recycle-frontend .
# 태그도 있어야 된다!
docker push jaewon3640/recycle-frontend:latest
docker push jaewon3640/recycle-frontend:latest

push 완료 후 Docker Hub의 Repository에서 잘 올라간 것을 확인할 수 있다.


MySQL 이미지는 따로 안올려도 되나?

Q :여기서 MySQL 이미지는 없는데 안 올려도 괜찮은건가...?
A : 그렇다.

MySQL은 이미 Docker Hub에 공식 이미지가 있다.

image: mysql:8.0  # Docker Hub 공식 이미지 자동으로 pull

docker compose up 실행하면 MySQL은 Docker Hub 공식 저장소에서 자동으로 받아온다.

직접 만든 이미지는 push하면 되고, 공식 이미지는 그냥 그대로 사용하면 된다.

이미지설명
jaewon3640/recycle-app우리가 만든 Spring Boot → push 필요
jaewon3640/recycle-frontend우리가 만든 React → push 필요
MySQL공식 이미지 그대로 사용 → push 불필요

이것을 커스텀하면 올려야 되지만 아니라면 그냥 그대로 올려도 된다.


4.) 최종 정리

Docker Hub란?

Docker image를 저장·관리·공유할 수 있는 클라우드 기반 이미지 저장소로, 소스코드를 관리하는 GitHub처럼 도커 이미지를 관리하는 플랫폼이다.

왜 쓰나?

상황설명
🚀 빠른 배포로컬에서 빌드 후 push → EC2는 pull만 하면 됨
💾 EC2 부담 감소t2.micro에서 직접 빌드 시 메모리 부족 위험 방지
🤝 협업 용이팀원 누구든 같은 이미지를 pull 받아 동일 환경 구성 가능
📦 공식 이미지 활용MySQL, Redis 등 공식 이미지를 그대로 사용 가능

전체 사용 순서 한눈에 보기

1. hub.docker.com 회원가입
       ↓
2. shell에서 로그인
   docker login -u <username>
       ↓
3. 로컬에서 이미지 빌드
   docker build -t <username>/<image-name> .
       ↓
4. Docker Hub에 push
   docker push <username>/<image-name>:latest
       ↓
5. EC2에서 pull 후 실행
   docker compose up -d

핵심 명령어 정리

명령어설명
docker login -u <username>Docker Hub 로그인
docker build -t <username>/<name> .이미지 빌드
docker push <username>/<name>:latest이미지 업로드
docker pull <username>/<name>:latest이미지 다운로드
docker compose up -d컨테이너 실행

push 필요 여부

이미지push 필요 여부이유
✅ 직접 만든 Spring Boot 앱필요커스텀 이미지이므로 직접 올려야 함
✅ 직접 만든 React 앱필요커스텀 이미지이므로 직접 올려야 함
❌ MySQL, Redis 등불필요Docker Hub 공식 이미지 자동 pull

💡 한 줄 요약 : 로컬에서 빌드 → Docker Hub에 push → EC2에서 pull & 실행. EC2는 실행만 담당!

0개의 댓글