PaaS/CI CD

Docker Repository, Harbor 설치하기(Centos, Amazon Linux)

armyost 2021. 5. 12. 21:33
728x90

■ SSL 적용을 위한 OPENSSL 설치
※주의 ssl 적용하고 harbor install 할것
#yum install openssl
#mkdir ~/ssl
#cd ~/ssl

#openssl genrsa -out ca.key 4096

 

#openssl req -x509 -new -nodes -sha512 -days 3650
-subj "/C=KR/ST=Seoul/L=Seoul/O=조직명/OU=Personal/CN=Repository서버 도메인"
-key ca.key
-out ca.crt

 

#openssl genrsa -out harbor.key 4096


#openssl req -sha512 -new
-subj "/C=KR/ST=Seoul/L=Seoul/O=조직/OU=Personal/CN=Repository서버 도메인"
-key harbor.key
-out harbor.csr

 

#cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=Repository서버 도메인
EOF

 

#openssl x509 -req -sha512 -days 3650
-extfile v3.ext
-CA ca.crt -CAkey ca.key -CAcreateserial
-in harbor.csr
-out harbor.crt

 

#openssl x509 -inform PEM -in harbor.crt -out harbor.cert

/root/ssl/harbor.cert
/root/ssl/harbor.crt
/root/ssl/harbor.key


■ YUM 최신버전 설치
#yum install -y yum-utils device-mapper-persistent-data lvm2

 

■ docker 최신버전
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#yum install docker-ce

 

■ docker compose 설치
#curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose  

 

#chmod +x /usr/local/bin/docker-compose

 

■ harbor 설치
#wget https://github.com/goharbor/harbor/releases/download/v1.10.1/harbor-offline-installer-v1.10.1.tgz

#tar -xvf harbor-offline-installer-v1.10.1.tgz
#cd harbor
#vi harbor.yml

- hostname 변경 [실제 호스트 네임으로]

- https: 는 모두 주석

 

#./install.sh

#firewall-cmd --zone=public --permanent --add-port=443/tcp

#firewall-cmd --reload

 

harbor systemctl 등록하기
#vi /etc/systemd/system/harbor.service

 

[Unit]
Description=Harbor Service
After=network.target docker.service

[Service]
Type=forking

ExecStart=/usr/local/bin/docker-compose -f /root/harbor/docker-compose.yml start
ExecStop=/usr/local/bin/docker-compose -f /root/harbor/docker-compose.yml stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

 

#systemctl daemon-reload

 

docker 서버에서 registry 연동

서버에서만든 ca.crt파일을 /etc/docker/certs.d/Repository서버도메인/에 복사

#docker login Repository서버도메인 로 로그인

push 하기

docker tag SOURCE_IMAGE[:TAG] Repository서버도메인/library/IMAGE[:TAG]

docker tag docker.io/mysql:5.7 Repository서버도메인/library/mysql:5.7
docker push Repository서버도메인/library/mysql:5.7

docker tag docker.io/wordpress Repository서버도메인/library/wordpress
docker push Repository서버도메인/library/wordpress


■ docker compose 및 Harbor를 설치하는 다른방법 (Amazon Linux 용)

$ sudo yum update -y
$ sudo yum -y install wget tar
$ sudo yum install -y docker
$ sudo service docker start
$ sudo usermod -a -G docker ec2-user
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ curl -LO https://storage.googleapis.com/harbor-releases/harbor-online-installer-v1.5.2.tgz
$ tar -xvf harbor-online-installer-v1.5.2.tgz
$ cd harbor
$ vi harbor.cfg
# hostname = reg.mydomain.com 수정
$ ./install.sh