#26 [학습서] 컨테이너 레지스트리 구축 - Harbor
Tasks
컨테이너 레지스트리 - Harbor#
컨테이너 레지스트리란?
- 컨테이너 이미지를 저장하고 엑세스하는 저장소입니다.
Harbor
- CNCF에 등록된 컨테이너 레지스트리 오픈소스 프로젝트입니다.
- Harbor를 통하여 개인 컨테이너 레지스트리를 구축 할 수 있습니다.
- Web interface를 제공하므로 사용하기가 편리합니다.
- 유저 인증으로 접근 권한을 줄 수 있는 보안 기능이 있습니다.
Harbor 구축#
- Harbor-arm64
- 선행사항
-
- Docker 설치
-
- Docker-compose 설치
-
구축방법#
[harbor 다운로드 및 압축풀기]
wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-online-installer-v2.7.0.tgz
tar xvf harbor-online-installer-v2.7.0.tgz
[harbor 설정파일 수정]
cd harbor/
cp harbor.yml.tmpl harbor.yml
HOST_IP=`hostname -I | awk '{print $1}'`
sed -i "s/reg.mydomain.com/${HOST_IP}/g" harbor.yml
vim harbor.yml
https 관련 부분들 주석처리
[prepare 파일 실행]
sed -i "s/goharbor/ghcr.io\/octohelm\/harbor/g" prepare
./prepare
[docker-compose 파일 수정 및 실행]
sed -i "s/goharbor/ghcr.io\/octohelm\/harbor/g" docker-compose.yml
sudo docker-compose up -d
[Harbor 확인]
sudo docker-compose ps -a
접속#
- HOST_IP 변수에 저장된 IP로 접속합니다.
- Default ID : admin
- Default P/w : Harbor12345
사용방법#
Harbor 내에 프로젝트 추가#
-
- 프로젝트 추가
- NEW PROJECT 선택 프로젝트 이름과 할당 디스크 용량 입력
-
- 프로젝트 생성 확인
- 프로젝트 생성 확인
이미지 업로드#
- Harbor 로그인
docker login 192.168.3.109
ID : admin
PW : Harbor12345
- insecure 레지스트리 추가 (레지스트리가 http로 구축 되어있어 다음의 내용을 추가)
[/etc/docker/daemon.json 생성 후 다음 내용 추가]
sudo vim /etc/docker/daemon.json
{
"insecure-registries": ["<Private 컨테이너 레지스트리 IP>:<Private 컨테이너 레지스트리 포트>"]
}
[도커 서비스 재시작]
systemctl restart docker
[Container image tag 변경]
docker tag [image] <Private 컨테이너 레지스트리 IP>:<Private 컨테이너 레지스트리 포트>/<프로젝트>/<이미지 이름>:<태그>
ex) docker tag ubuntu:20.04 192.168.3.109/xslab-test/ubuntu:20.04
[이미지 업로드]
docker push <Private 컨테이너 레지스트리 IP>:<Private 컨테이너 레지스트리 포트>/<프로젝트>/<이미지 이름>:<태그>
ec) docker push 192.168.3.109/xslab-test/ubuntu:20.04
이미지 다운로드#
[Harbor 로그인]
docker login <Private 컨테이너 레지스트리 IP>:<Private 컨테이너 레지스트리 포트>
ex) docker login 192.168.3.109
ID : admin
PW : Harbor12345
[/etc/docker/daemon.json 생성 후 다음 내용 추가]
sudo vim /etc/docker/daemon.json
{
"insecure-registries": ["<Private 컨테이너 레지스트리 IP>:<Private 컨테이너 레지스트리 포트>"]
}
[도커 서비스 재시작]
systemctl restart docker
[이미지 다운로드]
docker pull <Private 컨테이너 레지스트리 IP>:<Private 컨테이너 레지스트리 포트>/<프로젝트>/<이미지 이름>:<태그>
ex) docker pull 192.168.3.109/xslab-test/ubuntu:20.04
[이미지 확인]
docker image list
---
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.3.109/xslab-test/ubuntu 20.04 43ed104e759f 4 weeks ago 65.7MB
Comment 0
Add a comment