Docker를 처음 배우면 가장 먼저 사용하는 명령어가 docker pull nginx입니다.
이 명령은 인터넷에서 Nginx 이미지를 다운로드하는데, 대부분 Docker Hub라는 저장소에서 가져옵니다.
Docker Hub는 전 세계 개발자가 가장 많이 사용하는 Docker 이미지 저장소이며, Ubuntu, Nginx, MySQL, Redis, Python 등 수많은 공식 이미지를 무료로 제공합니다.
이번 글에서는 Docker Hub의 개념부터 Official Image, 이미지 검색, 다운로드, 태그(Tag) 관리, 실무 활용 방법까지 자세히 알아보겠습니다.
Docker Hub란?
Docker Hub는 Docker에서 제공하는 공식 Public Registry 서비스입니다.
사용자는 Docker Hub를 통해 이미지를 업로드하거나 다운로드할 수 있습니다.
전체 구조는 다음과 같습니다.
Developer
↓
Docker Hub
↓
Production Server
↓
Docker Container
Docker Hub는 기본 Registry로 설정되어 있기 때문에 Registry 주소를 생략해도 자동으로 Docker Hub를 사용합니다.
Docker Hub의 역할
Docker Hub는 다음과 같은 역할을 수행합니다.
- Docker Image 저장
- Docker Image 공유
- 공식 이미지 제공
- 버전(Tag) 관리
- 이미지 배포
- 팀 협업 지원
Docker를 사용하는 대부분의 개발자는 Docker Hub를 한 번 이상 사용하게 됩니다.
Official Image란?
Official Image는 Docker에서 검증하고 관리하는 공식 이미지입니다.
대표적인 Official Image는 다음과 같습니다.
- Ubuntu
- Nginx
- MySQL
- MariaDB
- Redis
- PostgreSQL
- Python
- Node.js
- OpenJDK
- Alpine Linux
공식 이미지는 품질과 안정성이 높아 실무에서도 널리 사용됩니다.
Official Image 확인 방법
Docker Hub에서 Official Image는 공식 인증 표시가 있습니다.
CLI에서도 검색할 수 있습니다.
docker search nginx
예시 출력
NAME DESCRIPTION STARS OFFICIAL
nginx Official Image ***** [OK]
[OK] 표시가 있는 이미지는 Official Image입니다.
Docker Hub에서 이미지 다운로드
가장 많이 사용하는 명령입니다.
docker pull nginx
동작 과정
Docker Hub
↓
Nginx Image
↓
Local Image
다운로드 후에는 로컬에서 바로 사용할 수 있습니다.
특정 버전 다운로드
버전을 지정하려면 Tag를 사용합니다.
docker pull nginx:1.27
또는
docker pull ubuntu:24.04
운영 환경에서는 latest보다 명확한 버전을 사용하는 것이 안전합니다.
latest 태그란?
많은 사용자가 latest를 최신 버전이라고 생각하지만 항상 그런 것은 아닙니다.
docker pull redis:latest
latest는 이미지 관리자가 기본 태그로 지정한 버전일 뿐입니다.
새로운 버전이 출시되더라도 latest가 즉시 변경되지 않을 수도 있습니다.
다운로드한 이미지 확인
현재 저장된 이미지는 다음 명령으로 확인합니다.
docker images
예시
REPOSITORY TAG IMAGE ID
ubuntu 24.04 xxxxx
nginx 1.27 xxxxx
redis latest xxxxx
Docker Hub에서 이미지 검색
CLI에서 원하는 이미지를 검색할 수 있습니다.
docker search mysql
예시
NAME
DESCRIPTION
STARS
OFFICIAL
검색 결과에서 공식 이미지와 커뮤니티 이미지를 구분할 수 있습니다.
Docker Hub 계정 로그인
이미지를 업로드하려면 로그인해야 합니다.
docker login
사용자 이름과 비밀번호 또는 Access Token을 입력합니다.
로그인이 완료되면 인증 정보가 저장됩니다.
로그인 확인
설정 파일을 확인할 수 있습니다.
cat ~/.docker/config.json
이 파일에는 로그인 정보와 Registry 설정이 포함됩니다.
이미지 업로드
먼저 이미지를 자신의 계정 이름으로 태그합니다.
docker tag myapp myuser/myapp:v1
업로드합니다.
docker push myuser/myapp:v1
과정
Local Image
↓
docker push
↓
Docker Hub
↓
Upload Complete
이미지 업데이트
새 버전을 배포할 경우 새로운 Tag를 사용하는 것이 일반적입니다.
예를 들어
myapp:v1
↓
myapp:v2
↓
myapp:v3
처럼 관리하면 이전 버전으로 쉽게 되돌릴 수 있습니다.
Docker Hub의 장점
Docker Hub를 사용하는 이유는 다음과 같습니다.
- 무료 공식 이미지 제공
- 쉬운 다운로드
- 버전 관리
- 다양한 공개 프로젝트
- 전 세계 개발자와 공유 가능
- CI/CD 연동 가능
특히 오픈소스 프로젝트에서는 Docker Hub가 표준처럼 사용됩니다.
Docker Hub 사용 시 주의사항
다음 사항을 확인하는 것이 좋습니다.
- Official Image 우선 사용
- 최신 버전만 사용하지 않기
- 명확한 Tag 지정
- 이미지 신뢰성 확인
- 민감한 정보 포함 금지
- 오래된 이미지 사용 자제
공식 이미지라도 보안 업데이트 여부를 정기적으로 확인하는 것이 중요합니다.
실무에서 자주 사용하는 명령어
이미지 검색
docker search nginx
이미지 다운로드
docker pull nginx
버전 지정 다운로드
docker pull nginx:1.27
이미지 목록 확인
docker images
Docker Hub 로그인
docker login
이미지 태그 변경
docker tag myapp myuser/myapp:v1
이미지 업로드
docker push myuser/myapp:v1
로그아웃
docker logout
실무 사례
예를 들어 개발팀이 새로운 웹 서비스를 구축한다고 가정해 보겠습니다.
- Docker Hub에서
ubuntu:24.04이미지를 다운로드합니다. - 해당 이미지를 기반으로 애플리케이션을 설치합니다.
- Dockerfile을 이용해 새로운 이미지를 생성합니다.
mycompany/web:v1.0태그를 지정합니다.- Docker Hub 또는 사내 Registry에 이미지를 업로드합니다.
- 운영 서버에서는 동일한 이미지를 다운로드하여 컨테이너를 실행합니다.
이러한 방식은 개발 환경과 운영 환경의 일관성을 유지하는 데 매우 효과적입니다.
자주 묻는 질문
Docker Hub와 Docker Registry는 같은 의미인가요?
아닙니다. Docker Registry는 이미지를 저장하는 저장소를 의미하는 일반적인 개념입니다. Docker Hub는 Docker에서 제공하는 대표적인 Public Registry 서비스입니다.
Official Image만 사용하는 것이 좋나요?
가능하면 그렇습니다. Official Image는 Docker에서 검증하고 관리하기 때문에 안정성과 신뢰성이 높습니다. 다만 프로젝트에 따라 검증된 커뮤니티 이미지나 기업에서 자체 제작한 이미지를 사용할 수도 있습니다.
운영 환경에서 latest 태그를 사용해도 되나요?
권장되지 않습니다. 운영 환경에서는 nginx:1.27, postgres:17처럼 명확한 버전을 지정해야 예상치 못한 업데이트로 인한 장애를 예방할 수 있습니다.
마무리
Docker Hub는 Docker 생태계에서 가장 널리 사용되는 이미지 저장소입니다. 공식 이미지를 활용하면 안정적인 개발과 배포가 가능하며, 버전 태그를 적절히 관리하면 운영 환경에서도 일관된 서비스를 제공할 수 있습니다. 다음 단계에서는 Dockerfile을 작성하여 자신만의 Docker 이미지를 만드는 방법을 알아보겠습니다.