[컨테이너] RHEL 8.4에 Harbor 컨테이너 레지스트리 설치하기

2025. 6. 3. 22:38·깐돌의 클라우드 도구함
728x90

클라우드 환경에서 컨테이너 기술은 이제 필수가 되었습니다. 인터넷 연결이 원활한 환경이라면 외부 컨테이너 레지스트리를 통해 이미지를 쉽게 가져와 사용할 수 있지만, 실제 프로덕션 환경이나 보안이 중요한 내부 시스템을 구축할 때는 외부 연결이 제한되거나 불가능한 경우가 많습니다.

이러한 상황에서 **Harbor**는 오픈소스 컨테이너 이미지 레지스트리 솔루션으로서 빛을 발합니다. Harbor는 로컬(프라이빗) Docker 레지스트리를 쉽게 설치, 구성하고 유지 보수할 수 있도록 돕습니다. 또한, 프로젝트별로 이미지를 구분하여 관리할 수 있는 강력한 이점을 제공하여, 컨테이너화된 워크로드를 사용하는 모든 엔지니어에게 필수적인 도구입니다.

이 가이드는 **RHEL 8.4** 버전을 기준으로 Harbor 설치 과정을 상세히 설명합니다. 지금부터 함께 Harbor를 구축해 보겠습니다!


목차

  1. Harbor 설치를 위한 Docker 환경 준비
    1. Docker 외부 Repository 추가
    2. docker-ce 설치
    3. docker 서비스 활성화
  2. Docker Compose 다운로드 및 설치
  3. Harbor 설치 파일 다운로드 및 압축 해제
  4. Harbor 설정 파일 구성
    1. harbor.yml 파일 백업
    2. harbor.yml 파일 설정
  5. Harbor 설치 실행
  6. Harbor 웹 UI 접속 및 로그인

1. Harbor 설치를 위한 Docker 환경 준비

Harbor는 Docker 컨테이너를 기반으로 실행되므로, Harbor를 설치하기 전에 Docker 및 Docker Compose를 먼저 설치해야 합니다. RHEL 8.4 환경에서 Docker를 설치하는 방법을 살펴보겠습니다.

1.1. Docker 외부 Repository 추가

기본 RHEL 리포지토리에는 Docker CE(Community Edition)가 포함되어 있지 않으므로, Docker 공식 리포지토리를 시스템에 추가해야 합니다. 이 단계를 통해 최신 버전의 Docker를 설치할 수 있습니다.

[root@rhocp-registry yum.repos.d]# sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

리포지토리가 성공적으로 추가되었는지 확인하기 위해 dnf repolist 명령어를 사용할 수 있습니다. 아래와 같이 grep docker를 통해 필터링하여 확인합니다.

[root@rhocp-registry yum.repos.d]# sudo dnf repolist -v | grep docker
Failed to set locale, defaulting to C.UTF-8
Docker CE Stable - x86_64                       162 kB/s | 3.5 kB     00:00
Repo-id            : docker-ce-stable
Repo-baseurl       : https://download.docker.com/linux/centos/8/x86_64/stable
Repo-filename      : /etc/yum.repos.d/docker-ce.repo

출력에서 Repo-id : docker-ce-stable과 Repo-baseurl이 정상적으로 보이는 것을 확인하면 다음 단계로 진행할 수 있습니다.

1.2. docker-ce 설치

이제 Docker CE를 설치할 준비가 되었습니다. dnf install 명령어를 사용하여 Docker 엔진을 설치합니다.

[root@rhocp-registry yum.repos.d]# sudo dnf install docker-ce

만약 특정 버전의 Docker를 설치해야 한다면, 다음과 같이 버전을 지정할 수 있습니다. 예를 들어, 3:20.10.9-3.el8 버전을 설치하려면:

[root@rhocp-registry yum.repos.d]# sudo dnf install docker-ce-3:20.10.9-3.el8

설치 과정에서 의존성 패키지 설치 여부를 묻는 메시지가 나타날 수 있습니다. 'y'를 입력하여 진행합니다.

1.3. docker 서비스 활성화

Docker 설치가 완료되면, Docker 서비스를 시작하고 시스템 부팅 시 자동으로 실행되도록 설정해야 합니다.

[root@rhocp-registry yum.repos.d]# systemctl enable docker --now

이 명령어는 Docker 서비스를 즉시 시작(--now)하고, 시스템 재부팅 시에도 자동으로 시작(enable)되도록 심볼릭 링크를 생성합니다. 출력을 통해 심볼릭 링크가 성공적으로 생성되었음을 확인할 수 있습니다.

Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

Docker 서비스의 상태를 확인하여 정상적으로 실행 중인지 점검합니다. docker ps 명령어로 실행 중인 컨테이너가 있는지 확인하거나, systemctl status docker 명령어로 서비스 상태를 상세히 볼 수 있습니다.

[root@rhocp-registry yum.repos.d]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@rhocp-registry yum.repos.d]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-11-24 17:34:51 KST; 4s ago
...

Active: active (running) 메시지를 확인하면 Docker가 성공적으로 설치 및 활성화된 것입니다.


 

2. Docker Compose 다운로드 및 설치

Harbor는 여러 Docker 컨테이너로 구성되어 있으며, 이들을 쉽게 관리하기 위해 Docker Compose를 사용합니다. 공식 GitHub 릴리스 페이지에서 최신 버전의 Docker Compose를 다운로드합니다. 이 가이드에서는 1.23.2 버전을 예시로 사용합니다.

[root@rhocp-registry ~]# curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o docker-compose

uname -s는 운영체제 이름을, uname -m은 머신 하드웨어 아키텍처를 반환하여 현재 시스템에 맞는 Docker Compose 바이너리를 다운로드합니다.

다운로드 진행 상황은 다음과 같이 표시됩니다:

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   633  100   633    0     0   1316      0 --:--:-- --:--:-- --:--:--  1313
100 11.2M  100 11.2M    0     0  6148k      0  0:00:01  0:00:01 --:--:-- 21.9M

다운로드된 파일이 현재 디렉토리에 있는지 ls 명령어로 확인합니다:

[root@rhocp-registry ~]# ls
docker-compose

이제 다운로드한 docker-compose 파일을 실행 가능한 경로로 이동하고 실행 권한을 부여합니다. 일반적으로 /usr/local/bin 경로에 위치시킵니다.

[root@rhocp-registry ~]# sudo mv docker-compose /usr/local/bin && sudo chmod +x /usr/local/bin/docker-compose

이로써 Docker Compose 설치가 완료되었습니다.


 

3. Harbor 설치 파일 다운로드 및 압축 해제

Harbor 설치 파일은 공식 GitHub 릴리스 페이지에서 다운로드할 수 있습니다. 가장 최신 버전의 오프라인 설치 패키지(.tgz)를 다운로드하는 명령어를 사용합니다.

[root@rhocp-registry ~]# curl -s https://api.github.com/repos/goharbor/harbor/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep '\.tgz$' | wget -i -

이 명령어는 GitHub API를 통해 최신 Harbor 릴리스 정보를 가져와 .tgz 확장자를 가진 다운로드 URL을 추출한 후, wget으로 파일을 다운로드합니다. 다운로드가 완료되면 해당 파일의 압축을 해제합니다.

[root@rhocp-registry ~]# tar xvf harbor-offline-installer-v2.3.4.tgz

압축 해제 후 생성된 harbor 디렉토리로 이동합니다.

[root@rhocp-registry ~]# cd harbor

이제 Harbor 설치를 위한 모든 파일이 준비되었습니다.


 

4. Harbor 설정 파일 구성

Harbor는 harbor.yml 파일을 통해 다양한 설정을 구성할 수 있습니다. 설치를 진행하기 전에 이 파일을 수정해야 합니다.

4.1. harbor.yml 파일 백업

설정 파일을 수정하기 전에 원본 템플릿 파일을 백업하는 것이 좋습니다. 문제가 발생했을 때 쉽게 복구할 수 있도록 harbor.yml.tmpl 파일을 harbor.yml로 복사합니다.

[root@rhocp-registry harbor]# cp -pr harbor.yml.tmpl harbor.yml

4.2. harbor.yml 파일 설정

Harbor의 기본 설정을 환경에 맞게 수정해야 합니다. 여기서는 빠른 설치를 위해 HTTP로 구성하는 최소한의 설정만 적용합니다. (참고: 프로덕션 환경에서는 보안을 위해 반드시 HTTPS를 사용하는 것이 좋습니다.)

harbor.yml 파일을 열고 다음 항목을 수정합니다:

  • hostname: Harbor에 접속할 IP 주소 또는 도메인 이름으로 변경합니다. 테스트 환경에서는 서버의 IP 주소를 사용합니다. (예: 55.55.31.12)
  • https 관련 설정 주석 처리: HTTP를 사용할 것이므로, https: 블록 전체를 주석 처리하거나 삭제합니다.
  • harbor_admin_password: Harbor 웹 브라우저 접속 시 사용할 관리자 비밀번호를 설정합니다. (예: root123)

수정된 harbor.yml 파일의 예시는 다음과 같습니다:

hostname: 55.55.31.12
# https related config
#https:
#  port: 8080
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path

harbor_admin_password: root123

이 설정을 저장한 후 파일을 닫습니다.

참고: HTTPS 설정 및 기타 고급 설정에 대한 자세한 내용은 이 블로그를 참조하시면 좋습니다.


 

5. Harbor 설치 실행

모든 사전 준비와 설정 파일 수정이 완료되었다면, 이제 Harbor 설치 스크립트를 실행할 차례입니다. harbor 디렉토리 내에서 install.sh 스크립트를 실행합니다.

[root@rhocp-registry harbor]# ./install.sh

설치 스크립트는 Docker 및 Docker Compose 설치 여부를 확인하고, 필요한 구성 요소를 다운로드하며, Harbor 컨테이너를 시작합니다. 진행 상황은 터미널에 출력됩니다.

[Step 0]: checking if docker is installed ...

Note: docker version: 20.10.11

[Step 1]: checking docker-compose is installed ...

Note: docker-compose version: 1.23.2

...

[Step 5]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-db     ... done
Creating redis         ... done
Creating registry      ... done
Creating registryctl   ... done
Creating harbor-portal ... done
Creating harbor-core   ... done
Creating nginx             ... done
Creating harbor-jobservice ... done
✔ ----Harbor has been installed and started successfully.----

마지막에 **✔ ----Harbor has been installed and started successfully.----** 메시지가 나타나면 Harbor 설치가 성공적으로 완료된 것입니다!


 

6. Harbor 웹 UI 접속 및 로그인

Harbor 설치가 완료되면 웹 브라우저를 통해 Harbor 관리 콘솔에 접속할 수 있습니다. harbor.yml 파일에 설정했던 hostname 또는 IP 주소를 사용하여 접속합니다.

http://<Server IP>

예를 들어, 설정했던 IP 주소가 55.55.31.12라면, 웹 브라우저에서 http://55.55.31.12로 접속합니다.

Harbor 로그인 페이지가 나타나면, 다음과 같은 기본 관리자 계정 정보를 입력합니다:

  • 사용자 이름: admin
  • 비밀번호: root123 (harbor_admin_password에 설정했던 비밀번호)

성공적으로 로그인하면 Harbor의 대시보드를 볼 수 있으며, 이제 프라이빗 컨테이너 이미지 레지스트리를 사용할 준비가 완료된 것입니다. 이미지를 푸시하거나 풀하는 등의 작업을 시작할 수 있습니다.


이 가이드가 RHEL 8.4 환경에서 Harbor 컨테이너 레지스트리를 설치하는 데 도움이 되기를 바랍니다. Harbor를 통해 컨테이너 이미지 관리를 더욱 효율적이고 안전하게 수행하시길 바랍니다!

 

728x90
반응형

'깐돌의 클라우드 도구함' 카테고리의 다른 글

[컨테이너] RHOCP4 에서 virtctl 설치 및 사용법  (1) 2025.06.04
[컨테이너] Harbor 컨테이너 레지스트리: 프로젝트 생성부터 이미지 푸시까지 완벽 가이드  (0) 2025.06.04
[Linux] du 명령어로 디렉토리(폴더)별 디스크 사용량 확인하기  (0) 2025.06.03
[가상화] virsh 명령어 사용 가이드  (0) 2025.05.30
[Linux] Cobbler 설치 및 기본 구성 가이드  (0) 2025.05.29
'깐돌의 클라우드 도구함' 카테고리의 다른 글
  • [컨테이너] RHOCP4 에서 virtctl 설치 및 사용법
  • [컨테이너] Harbor 컨테이너 레지스트리: 프로젝트 생성부터 이미지 푸시까지 완벽 가이드
  • [Linux] du 명령어로 디렉토리(폴더)별 디스크 사용량 확인하기
  • [가상화] virsh 명령어 사용 가이드
깐돌씨
깐돌씨
하루하루를 기록하는 공간. 일상에서 얻은 영감, 좋아하는 취미, 그리고 클라우드 업무 팁까지 함께 나눕니다.
  • 깐돌씨
    조용한 깐돌이네
    깐돌씨
  • 전체
    오늘
    어제
    • 분류 전체보기 (73) N
      • 깐돌일기 (6) N
      • 취미탐험대 (13)
      • 깐돌의 클라우드 도구함 (54)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    private registry
    rhel
    rhocp
    kickstart
    내비게이션앱
    오픈소스
    리눅스 가상화
    리눅스
    리눅스 서버
    컨테이너
    KVM
    RHEL8
    서버 관리
    Docker
    tmap 사용하는 법
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
깐돌씨
[컨테이너] RHEL 8.4에 Harbor 컨테이너 레지스트리 설치하기
상단으로

티스토리툴바