본문 바로가기

Program

Docker 이미지 빌드부터 태그, 퍼블리시까지 완전 정복

반응형

 

🏗 Docker 이미지 빌드부터 태그, 퍼블리시까지 완전 정복

실무에서 바로 쓰는 Docker 이미지 배포 프로세스 따라하기


 

📦 Docker 이미지란 무엇인가?

Docker 이미지란 컨테이너를 실행하기 위한 설정과 코드가 포함된 일종의 템플릿입니다. 이 이미지를 기반으로 컨테이너가 실행되며, 동일한 이미지를 기반으로 수십, 수백 개의 컨테이너를 띄울 수 있죠.

Docker 이미지를 만들고 Docker Hub와 같은 레지스트리에 업로드하면 다음과 같은 이점이 있습니다:

  • 언제 어디서나 동일한 환경 제공
  • CI/CD 파이프라인과 연동 가능
  • 협업 시 환경 통일
  • 배포 자동화 기반 마련

⚙️ 기본 실습 개요

이번 실습은 다음 3단계로 구성됩니다.

  1. Dockerfile로 이미지 빌드
  2. 이미지에 태그(Tag) 붙이기
  3. Docker Hub에 퍼블리시(Push)

예시는 간단한 Node.js 웹 서버로 구성합니다.


🧾 1단계: Dockerfile 작성 및 이미지 빌드

📂 디렉토리 구조

/my-app
├── app.js
├── package.json
└── Dockerfile

📜 Dockerfile 예시

FROM node:20
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "app.js"]

🛠 이미지 빌드 명령어

docker build -t my-node-app .
  • -t: 태그를 지정합니다 (지금은 로컬에서 사용할 이름)
  • .: 현재 디렉토리 기준

빌드가 완료되면 docker images로 확인 가능


🏷 2단계: 이미지 태그 지정

Docker Hub에 업로드하기 위해서는 Docker Hub 계정명을 포함한 태그가 필요합니다.

docker tag my-node-app yourusername/my-node-app:1.0

예를 들어 Docker Hub 계정이 dongjin93이라면:

docker tag my-node-app dongjin93/my-node-app:1.0

여기서 1.0은 버전 번호입니다.
태그는 버전 관리뿐만 아니라, latest, dev, prod 등 목적에 따라 다양하게 붙일 수 있습니다.


반응형

 

☁️ 3단계: Docker Hub 로그인 및 이미지 퍼블리시

🔐 로그인

docker login

계정명과 비밀번호를 입력하면 인증이 완료됩니다.

⬆️ 퍼블리시(Push)

docker push yourusername/my-node-app:1.0

Docker는 이 이미지를 Docker Hub에 업로드합니다.
업로드가 완료되면 웹 UI에서 직접 확인할 수 있습니다.


🌐 어디서든 실행 가능

이제 퍼블리시한 이미지는 전 세계 어디서든 다음 명령어 하나로 사용할 수 있습니다.

docker run -p 3000:3000 yourusername/my-node-app:1.0

자신이 만든 앱을 온프레미스 서버, 클라우드, CI 테스트 환경 어디든 실행할 수 있게 된 것입니다.


🧠 팁: 실전에서 유용한 태그 전략

태그 예시 설명

latest 가장 최신 버전. 자동 업데이트 시 유용
1.0, 1.1 버전 관리용. 하위 호환성 테스트 시 유용
dev, prod 환경에 따라 분리된 이미지 운용 가능

추천 전략:

  • 개발 단계는 dev, 테스트 시 staging, 최종 배포는 prod 또는 구체적 버전 번호 사용

🧭 마무리하며

Docker 이미지를 직접 만들고, 태그를 붙이고, 퍼블리시하는 과정은 개발자의 배포 능력을 확장시켜주는 중요한 기술입니다.

처음에는 어렵게 느껴질 수 있지만, 위 단계를 몇 번만 반복해 보면 금방 익숙해집니다.
특히, 팀 프로젝트나 협업, 배포 자동화 환경에서는 필수적인 개념이므로 꼭 익혀두시기 바랍니다.


 

나만의 Docker 이미지 만들고 Docker Hub에 올리기

 

나만의 Docker 이미지 만들고 Docker Hub에 올리기

🚀 나만의 Docker 이미지 만들고 Docker Hub에 올리기실습 중심! 이미지 빌드부터 푸시까지 한 번에 따라해보기🧱 시작하며: 왜 Docker 이미지를 만들어야 할까?Docker는 애플리케이션을 컨테이너 단위

jjig810906.tistory.com

 

반응형