본문 바로가기
DevOps/Docker

5. 도커 허브(Docker Hub) 사용법 (docker tag, docker push, 주의점)

by 잉크드 2023. 7. 17.
반응형

 

이전 글에서 우리는 도커파일(Dockerfile)을 이용해서 입맛에 맞는 커스텀 도커 이미지(Docker Image)를 만들었습니다. 이번 글에서는 이 도커 이미지를 가장 널리 사용되는 도커 레지스트리인 도커 허브(Docker Hub)에 업로드하는 과정을 다뤄보겠습니다.

0. 도커 이미지 업로드의 중요성

업로드에 앞서, 이미지를 업로드하는 이유를 짚어보겠습니다. 우선 우리가 도커를 사용하는 이유, 즉 장점에 대해서는 이 글에서 간단하게 짚어보았습니다. 이 중에서 환경의 일관성과 이식성을 극대화시킬 수 있는 방법이 레지스트리를 이용한 도커 이미지 업로드입니다. 또한, 도커 허브는 다른 사용자와 도커 이미지를 공유하기에 가장 이상적인 장소입니다. 우리가 필요한 이미지를 공유받을 수 있는 것도, 누군가가 업로드 해놓았기 때문입니다. 알게 모르게 서로 돕는 좋은 문화를 유지할 수 있다는 점에서도 이미지 업로드는 중요한 과정입니다.

1. 업로드할 도커 이미지 생성

이전 글에서 이미 작성했지만, 이미지를 업로드하기 전에 코드를 간략하게 다시 리뷰해보겠습니다.

아래는 'Dockerfile' 파일의 내용입니다.

# 베이스 이미지 설정, IMAGE:VERSION
FROM python:3.9-slim
# 작업 디렉토리 설정
WORKDIR /app
# 호스트 시스템의 현재 디렉토리의 모든 파일을 컨테이너의 작업 디렉토리로 복사
COPY . .
# 의존성 패키지 설치
RUN pip install --no-cache-dir -r requirements.txt
# 컨테이너가 실행될 명령어 설정
CMD ["python", "app.py"]

아래는 'app.py' 파일의 내용입니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

아래는 'requirements.txt' 파일의 내용입니다.

Flask==2.0.1

'docker build -t myapp .' 명령어를 통해서 도커 이미지를 빌드하고, myapp이라는 태그를 붙힙니다.

 

2. 이미지를 도커 허브에 업로드

2.0 도커 허브 계정 생성

도커 허브에 접속하여 가입을 진행합니다. 간단한 과정이기에 따로 설명하지 않겠습니다.

2.1 터미널에서 도커 허브에 로그인

'docker login' 명령을 입력하여 도커 허브 계정에 로그인할 수 있습니다.

docker login 실행 결과 예시

2.2 도커 허브에 업로드를 위한 태그

이미지를 도커 허브에 업로드하려면 이미지에 태그를 지정해야 합니다. 'docker tag' 명령을 사용하여 이미지를 태그합니다. 태그는 도커 허브 사용자 이름, 리포지토리 이름, 그리고 태그 이름으로 구성됩니다. <MYUSERNAME> 부분에 본인의 도커 허브 계정 명을 입력하시면 됩니다. 실행한 후, 'docker images' 명령을 사용하여 정상적으로 태그되었는지 확인합니다.

docker tag myapp:latest <MYUSERNAME>/myapp:latest

 

docker tag 실행 후, docker images 명령어을 통해 확인

2.3 도커 이미지 푸시

마지막으로, 'docker push' 명령을 사용하여 이미지를 도커 허브에 업로드합니다. 업로드 이후 도커 허브에 접속하여 본인의 레포지토리에 업로드되었는지 확인합니다.

docker push <MYUSERNAME>/myapp:latest

3. 도커 이미지 업로드시 주의점

이미지 업로드 시 주의해야 할 점은 도커 이미지가 너무 크지 않게 해야한다는 점입니다. 큰 이미지는 네트워크 비용이 증가하고 다운로드 시간이 길어지므로 가능하면 작게 만드는 것이 좋습니다.

 

이번 글에서는 도커 이미지를 태깅하고, 도커 허브에 이미지를 업로드하는 방법을 알아봤습니다. 다음 글에서는 도커 허브에 업로드되어있는 이미지를 내려받아 사용하는 방법과 도커 이미지 버전관리에 대해서 다뤄보겠습니다.

댓글