이미지 관리와 접근

이미지 관리와 접근

1️⃣ + 이미지 Push / Pull 실습 (docker login, docker tag, docker push)

Harbor에 이미지를 저장하고 가져오기 위해선 기본적인 Docker 명령어를 활용해야 합니다.
실제 사용 예제를 통해 Push/Pull 과정을 이해해 봅시다.


1. docker login

Harbor에 로그인하여 인증을 수행합니다.

docker login harbor.example.com
Username: admin
Password: ********

성공하면 다음 메시지가 표시됩니다:

Login Succeeded

2. docker tag

이미지를 Harbor의 레지스트리 경로에 맞게 태깅합니다.

docker tag nginx:latest harbor.example.com/my-project/nginx:latest

3. docker push

태그된 이미지를 Harbor로 Push합니다.

docker push harbor.example.com/my-project/nginx:latest

Harbor UI에서 이미지가 업로드된 것을 확인할 수 있습니다.


✅ Push/Pull 아키텍처 흐름

[개발자 로컬 PC]
    ↓ docker login
[Harbor 인증 서버]
docker push/pull
[Harbor Registry (S3, PV 등)]

Harbor Push/Pull 아키텍처


2️⃣ + Harbor와 Docker, Podman 연동

Harbor는 Docker 외에도 Podman과의 연동도 가능합니다.
Podman은 Docker와 CLI 호환성을 갖춘 OCI 호환 컨테이너 런타임입니다.


1. Podman 로그인

podman login harbor.example.com
Username: admin
Password: ********

2. Podman으로 이미지 Push

podman tag myapp:v1 harbor.example.com/my-project/myapp:v1
podman push harbor.example.com/my-project/myapp:v1

✅ Docker vs Podman 비교

항목 Docker Podman
데몬 방식 데몬 기반 (dockerd) 데몬리스 (무데몬)
시스템 요구 백그라운드 서비스 필요 단일 프로세스 실행 가능
호환성 표준 OCI 호환

3️⃣ + Repository와 Tag 구조 이해

Harbor의 저장소 구조는 다음과 같습니다:

<Harbor_URL>/<Project_Name>/<Repository_Name>:<Tag>

예시:

harbor.example.com/my-project/backend-app:1.0.0

1. Repository와 Tag 예시 구조

my-project/
├── nginx/
│   ├── latest
│   ├── 1.23
├── backend-app/
│   ├── 1.0.0
│   ├── dev-branch

각 태그는 특정 시점의 이미지 상태를 나타냅니다.
CI/CD 환경에서는 latest, dev, v1.0.0 등의 태그를 전략적으로 사용할 수 있습니다.


✅ Tag 전략 팁

전략 설명
latest 항상 최신 배포 버전
v1.0.0 명확한 릴리즈 버전 구분
commit-hash Git SHA 기반 고유 이미지 태그
dev/stage/prod 환경별 구분

4️⃣ + 이미지 삭제 정책 및 Garbage Collection

Harbor는 이미지 삭제 후에도 실제 디스크에서 바로 삭제되진 않습니다.
Garbage Collection(GC) 기능을 통해 디스크 공간을 확보할 수 있습니다.


1. 이미지 삭제 방법 (UI)

  1. Harbor Web UI 접속
  2. 프로젝트 > 저장소 > 이미지 선택
  3. “Delete” 클릭

참고: 이 작업은 이미지 참조를 끊을 뿐, 저장소에서 실제로 삭제되지는 않음!


2. Garbage Collection 실행

docker exec -it harbor-core bash
harbor_gc

또는 관리자 UI에서 설정:

Administration ▶ Garbage Collection ▶ Run Manually

✅ 이미지 삭제/GC 흐름도

[사용자] → Harbor UI에서 이미지 삭제
[Harbor] → Tag 제거 (메타데이터만 제거됨)
[Admin 실행 시]
Garbage Collection
[Blob 파일 실제 제거, 디스크 공간 확보]

💡 추가 팁: 자동 GC 스케줄 설정

Administration ▶ GC ▶ Schedule: Daily or Weekly

RSS Feed
마지막 수정일자