Harbor 프라이빗 레지스트리 구축 안내

  1. Docker 및 Docker Compose 설치 Harbor를 설치하기 위해 먼저 서버 환경에 Docker와 Docker Compose를 설정해야 합니다. 본 가이드에서는 CentOS 환경을 기준으로 진행됩니다.

1.1. CentOS YUM 저장소 설정 시스템 업데이트 및 필수 패키지 설치를 위해 CentOS YUM 저장소를 최신 상태로 유지합니다. 필요에 따라 미러 서버를 구성할 수 있습니다.

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.2. Docker CE 저장소 추가 Docker 공식 저장소를 시스템에 추가하여 Docker CE(Community Edition)를 설치할 준비를 합니다.

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

설치 가능한 Docker CE 버전을 확인하고 원하는 버전을 선택할 수 있습니다.

yum list docker-ce --showduplicates | sort -r

1.3. Docker CE 설치 YUM 캐시를 업데이트하고 특정 버전의 Docker CE를 설치합니다. 예시에서는 18.09.9 버전을 사용합니다.

sudo yum makecache fast
sudo yum -y install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io

설치 완료 후 Docker 서비스가 부팅 시 자동으로 시작되도록 설정하고 서비스를 시작합니다.

sudo systemctl enable docker
sudo systemctl start docker

1.4. Docker Compose 설치 Harbor는 Docker Compose를 사용하여 배포되므로, Docker Compose를 설치해야 합니다. 다음 명령어를 사용하여 최신 안정 버전의 Docker Compose를 다운로드하고 실행 권한을 부여합니다.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

설치된 Docker Compose 버전을 확인합니다.

docker-compose -v
  1. Harbor 설치 2.1. Harbor 설치 파일 다운로드 및 압축 해제 Harbor GitHub 릴리즈 페이지에서 오프라인 설치 패키지를 다운로드합니다. 이 가이드에서는 v2.6.2 버전을 예시로 사용합니다.
wget https://github.com/goharbor/harbor/releases/download/v2.6.2/harbor-offline-installer-v2.6.2.tgz
tar -zxvf harbor-offline-installer-v2.6.2.tgz
cd harbor

2.2. Harbor 설정 파일 수정 harbor 디렉토리 내의 harbor.yml 파일을 수정하여 환경에 맞게 Harbor를 구성합니다. 다음 필드들을 변경합니다:

  • hostname: Harbor 서버의 IP 주소 또는 도메인 이름 (예: 192.168.1.100)
  • http.port: Harbor가 사용할 HTTP 포트 (예: 8080)
  • harbor_admin_password: Harbor 관리자 계정의 초기 비밀번호 (예: HarborPass123!)
  • data_volume: Harbor 데이터가 저장될 경로 (예: /opt/harbor-data)
# harbor.yml 예시 (일부 발췌)

hostname: 192.168.1.100

# http 관련 설정
http:
  port: 8080

# Harbor 관리자 비밀번호
harbor_admin_password: HarborPass123!

# 데이터 저장 경로
data_volume: /opt/harbor-data

2.3. Harbor 설치 실행 설정 파일 수정 후 install.sh 스크립트를 실행하여 Harbor를 설치합니다. 이 스크립트는 필요한 Docker 이미지를 로드하고 Harbor 서비스를 시작합니다.

./install.sh

설치가 성공적으로 완료되면 웹 브라우저를 통해 설정한 hostname:port (예: http://192.168.1.100:8080)로 접속하여 Harbor 관리 페이지에 접근할 수 있습니다. 초기 로그인 계정은 admin, 비밀번호는 harbor.yml에 설정한 HarborPass123!입니다.

  1. 클라이언트에서 Harbor 사용 3.1. Docker 클라이언트 설정 Harbor에 이미지를 푸시하거나 풀하려면, Docker 클라이언트가 Harbor 레지스트리를 신뢰하도록 설정해야 합니다. Harbor가 HTTP로 서비스되거나 자체 서명된 HTTPS 인증서를 사용하는 경우 insecure-registries 설정을 추가해야 합니다. 클라이언트 서버의 /etc/docker/daemon.json 파일을 수정합니다. 예시에서는 클라이언트 서버 IP를 192.168.1.101로 가정합니다.
{
  "insecure-registries": ["192.168.1.100:8080"]
}

변경사항 적용을 위해 Docker 서비스를 재시작합니다.

sudo systemctl daemon-reload
sudo systemctl restart docker

3.2. Harbor 로그인 클라이언트 서버에서 Harbor 레지스트리에 로그인합니다.

docker login 192.168.1.100:8080 -u admin -p HarborPass123!

3.3. 이미지 태그 지정 및 푸시 Harbor 웹 인터페이스에서 새로운 프로젝트를 생성합니다. 예를 들어, myproject라는 프로젝트를 생성할 수 있습니다. 로컬 Docker 이미지(예: ubuntu:latest)를 Harbor 레지스트리로 푸시하려면, 먼저 이미지를 Harbor의 레지스트리 주소와 프로젝트 이름을 포함하여 태그해야 합니다.

docker tag ubuntu:latest 192.168.1.100:8080/myproject/myubuntu:latest
docker push 192.168.1.100:8080/myproject/myubuntu:latest

푸시가 완료되면 Harbor 웹 인터페이스의 해당 프로젝트에서 업로드된 이미지를 확인할 수 있습니다.

태그: Harbor docker Docker Compose Container Registry Private Registry

8월 23일 05:07에 게시됨