🔹Kubernetes

[Rocky Linux 8.10] Harbor v2.10.3 설치 및 구축 가이드

terranbin 2025. 4. 15. 14:17
728x90
SMALL

✅ 사전 준비 사항

OS Rocky Linux 8.10 (x86_64)
Docker docker-ce / docker compose plugin
Harbor 버전 v2.10.3 (offline installer 사용)
접근 Domain harbor.local:5000
네트워크 폐쇄망 환경 (인터넷 미연결)

1. Docker & Compose 설치

# Docker Engine 설치
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io

# Docker 서비스 활성화
sudo systemctl enable --now docker

# Compose v2 plugin 설치
mkdir -p ~/.docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-linux-x86_64 \
  -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose

# Compose 버전 확인
docker compose version

2. Harbor 오프라인 설치 파일 다운로드 및 압축 해제

mkdir -p /opt/harbor && cd /opt/harbor
curl -LO https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz

tar xzvf harbor-offline-installer-v2.10.3.tgz
cd harbor
cp harbor.yml.tmpl harbor.yml

3. docker insecure registry 설정

cat <<EOF > /etc/docker/daemon.json
{
  "insecure-registries": ["harbor.local:5000"]
}
EOF

systemctl restart docker

# Kubernetes와 함께 사용할 경우 /etc/containerd/config.toml에도 harbor mirror 추가 필요

4. harbor.yml 구성 (필수 항목 수정)

# 1. hostname 설정
sed -i 's/^#\?hostname:.*/hostname: harbor.local/' harbor.yml

# 2. harbor_admin_password 설정 (없으면 hostname 아래에 삽입)
grep -q '^harbor_admin_password:' harbor.yml \
  || sed -i '/^hostname:/a harbor_admin_password: Harbor12345' harbor.yml

# 3. https 블록 전체 주석 처리 (data_volume 전까지)
sed -i '/^https:/,/^data_volume:/ s/^/#/' harbor.yml

# 4. data_volume 경로 설정
sed -i 's/^#data_volume:.*/data_volume: \/data/' harbor.yml

# 5. database 블록 전체 주석 해제
sed -i '/^#database:/,/^#  conn_max_idle_time:/s/^#//' harbor.yml

5. /etc/hosts 등록

IP=$(hostname -I | awk '{print $1}')
grep -q "harbor.local" /etc/hosts || echo "$IP harbor.local" >> /etc/hosts

6. Harbor prepare 실행

cd /opt/harbor/harbor
rm -rf common
./prepare

prepare 명령이 성공적으로 실행되면 docker-compose.yml 파일이 생성됩니다.


7. Harbor 기동 (docker compose)

# 포트 변경 
sed -i 's/80:8080/5000:8080/' docker-compose.yml

# docker-compose.yml 파일 확인
ls -l docker-compose.yml

# Compose V2 (plugin)
docker compose up -d

8. 정상 설치 확인

# nginx 포함 컨테이너 상태 확인
docker ps | grep nginx
curl -i http://harbor.local:5000
curl http://harbor.local:5000/v2/
curl -u admin:Harbor12345 http://harbor.local:5000/api/v2.0/projects

# 테스트 이미지 push
docker login harbor.local:5000
# admin / Harbor12345

docker tag hello-world harbor.local:5000/library/hello-world
docker push harbor.local:5000/library/hello-world
  • 추가적으로 Window 에서 보고 싶다면
    • C:\Windows\System32\drivers\etc\hosts (메모장 관리자 권한으로 실행)
    • window (host os) 에서, 아래와 같이 볼 수 있다
192.168.56.101 harbor.local

 

 

LIST