1. Docker harbor
harbor - Web UI 기반의 Docker Registry
우분투서버에
harbor 설치 > harbor 암호 등 설정 변경 > 실행 > UI 접속
<harbor 설치>
harbor를 github를 이용하여 다운로드
****Ubuntu 22.04****
vagrant@ubuntu2204:~/work$ wget https://github.com/goharbor/harbor/releases/download/v2.12.2/harbor-offline-installer-v2.12.2.tgz
vagrant@ubuntu2204:~/work$ ls
harbor-offline-installer-v2.12.2.tgz
우분투에 있는 다운로드파일을 centos 파일로 넘김
#sftp로 centos 서버 접속
vagrant@ubuntu2204:~/work$ sftp vagrant@registry.example.com
#접속 완료
sftp> put harbor-offline-installer-v2.12.2.tgz
Uploading harbor-offline-installer-v2.12.2.tgz to /home/vagrant/harbor-offline-installer-v2.12.2.tgz
harbor-offline-installer-v2.12.2.tgz 100% 618MB 30.6MB/s 00:20
****Centos9s****
전송이 완료됨
[vagrant@centos ~]$ ls
harbor-offline-installer-v2.12.2.tgz mariadb.tar
*.tgz 압축을 풀어줌
#압축을 풀어주기 전에 내용을 먼저 확인함
[vagrant@centos ~]$ tar -tf harbor-offline-installer-v2.12.2.tgz
harbor/harbor.v2.12.2.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
#압축을 풀어줌
[vagrant@centos ~]$ tar -xf harbor-offline-installer-v2.12.2.tgz
[vagrant@centos ~]$ ls
harbor harbor-offline-installer-v2.12.2.tgz mariadb.tar
<harbor 암호 등 설정 변경>
****Centos9s****
설정값을 변경해야함
harbor 파일에 들어가면 harbor.yml.tmpl 파일이 있음 탬플릿이므로 이걸 활용하여 설정 값을 변경해야함
[vagrant@centos harbor]$ ls
common.sh harbor.v2.12.2.tar.gz harbor.yml.tmpl install.sh LICENSE prepare
harbor.yml.tmpl -> 복사 -> harbor.yml
[vagrant@centos harbor]$ cp harbor.yml.tmpl harbor.yml
[vagrant@centos harbor]$ ls
common.sh harbor.yml install.sh prepare
harbor.v2.12.2.tar.gz harbor.yml.tmpl LICENSE
barbor.yml 파일 수정
[vagrant@centos harbor]$ vi harbor.yml
수정완료
harbor 설치
[vagrant@centos harbor]$ sudo ./install.sh
설치하게되면 docker-compose가 자동으로 설치가 됨
컨테이너가 연결되었다고 뜸
harbor와 관련된 docker가 생성이 완료
기존에 만들었던 레지스트리 컨테이너는 harbor 컨테이너와 충돌되어 삭제함
<실행>
docker compose up 실햄함
[vagrant@centos harbor]$ sudo docker compose up -d
[+] Running 9/9
✔ Container registry Started 2.6s
✔ Container harbor-core Started 3.6s
✔ Container nginx Started 4.9s
✔ Container harbor-jobservice Started 4.8s
✔ Container harbor-log Started 0.7s
✔ Container harbor-portal Started 1.7s
✔ Container harbor-db Started 1.9s
✔ Container redis Started 2.0s
✔ Container registryctl Started 1.8s
오류발생시 docker restart 해주고 다시 compose up
<UI 접속>
http://192.168.50.20
id : admin
pw: 1234
(harbor.yml 에서 변경한 값)
도커 harbor를 만들었고 여기에서 서버를 관리할 예정
사용자를 추가함
프로젝트를 추가함
그리고 우분투에서 이 harbor 접속시 http로 접속이 가능하도록 설정함
vagrant@ubuntu2204:/etc/docker$ sudo vi daemon.json
vagrant@ubuntu2204:/etc/docker$ sudo cat daemon.json
{"insecure-registries": ["registry.example.com:80"] }
vagrant@ubuntu2204:/etc/docker$ sudo systemctl restart docker
조금전 harbor로 만든 id/pw로 서버 접속
접속 완료
vagrant@ubuntu2204:/etc/docker$ docker login registry.example.com:80 -u piglet8
Password:
WARNING! Your password will be stored unencrypted in /home/vagrant/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-stores
Login Succeeded
프로젝트를 구성하여 harbor 웹으로 확인 할 수 있도록 올려둘 예정
#올리기 전 단계
vagrant@ubuntu2204:/etc/docker$ docker tag httpd registry.example.com:80/myproject-1/nginx
#올리기
vagrant@ubuntu2204:/etc/docker$ docker push registry.example.com:80/myproject-1/nginx
Using default tag: latest
The push refers to repository [registry.example.com:80/myproject-1/nginx]
e48683950315: Pushed
1b533b3f600d: Pushed
45d2a6f2a0b1: Pushed
5f70bf18a086: Pushed
d465f9c6793b: Pushed
7914c8f600f5: Pushed
latest: digest: sha256:c4414c8e7fa4e1f9df8f6141940bb3e222bd7febaf1df10ecd3d5a5991436496 size: 1572
#올라간 프로젝트 확인
vagrant@ubuntu2204:/etc/docker$ docker images registry.example.com:80/myproject-1/httpd
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.example.com:80/myproject-1/nginx latest 4d98e80840bb 2 months ago 148MB
등록된 것을 확인 할 수 있음
2. docker-compose
docker-compose 설치 -> docker-compose.yaml 로 서버 생성
<docker-compose 설치>
#docker compose 설치
#버전확인
vagrant@ubuntu2204:~/work$ docker --version
Docker version 27.5.1, build 9f9e405
#보통 자동설치되어있으나, 설치되어있지 않다면 아래와 같이 실행
#설치
vagrant@ubuntu2204:~/work$ sudo apt-get update
vagrant@ubuntu2204:~/work$ sudo apt-get install docker-compose-plugin
# 버전확인
vagrant@ubuntu2204:~/work$ docker compose version
Docker Compose version v2.34.0
이건 그냥 enter
<docker-compose.yaml 로 서버 생성>
vagrant@ubuntu2204:~/work$ vi docker-compose.yaml
vagrant@ubuntu2204:~/work$ cat docker-compose.yaml
networks:
webapps:
driver: bridge
ipam:
config:
- subnet: 172.30.0.0/16
services:
myapache:
image: httpd:latest
ports:
- "9000:80"
networks:
webapps:
ipv4_address: 172.30.0.10
# links: (deprecated)
# - mydb:db
depends_on:
- mydb
mydb:
image: mysql:latest
ports:
- "9001:3306"
networks:
webapps:
ipv4_address: 172.30.0.11
environment:
- MYSQL_ROOT_PASSWORD=mypass
- MYSQL_USER=user1
- MYSQL_PASSWORD=userpass
- MYSQL_DATABASE=userdb
volumes:
- /var/dbfiles:/var/lib/mysql
올리기
up 을 하면 왜 에러가나는지 원인을 못찾음..
# docker compose 올리기
vagrant@ubuntu2204:~/work$ docker compose up
vagrant@ubuntu2204:~/work$ docker compose ps -a
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
work-myapache-1 httpd:2.4 "httpd-foreground" myapache 3 minutes ago Exited (0) About a minute ago
work-mydb-1 mysql:5.7 "docker-entrypoint.s…" mydb 3 minutes ago Exited (2) 3 minutes ago
docker compose 확인
vagrant@ubuntu2204:~/work$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
work-myapache-1 httpd:2.4 "httpd-foreground" myapache 4 minutes ago Up About a minute 0.0.0.0:9000->80/tcp
work-mydb-1 mysql:5.5 "docker-entrypoint.s…" mydb 4 minutes ago Up About a minute 0.0.0.0:9001->3306/tcp
docker compose 제거
vagrant@ubuntu2204:~/work$ docker compose stop
[+] Stopping 2/2
✔ Container work-mydb-1 Stopped 1.3s
✔ Container work-myapache-1 Stopped 1.3s
vagrant@ubuntu2204:~/work$ docker compose rm
? Going to remove work-mydb-1, work-myapache-1 Yes
[+] Removing 2/2
✔ Container work-myapache-1 Removed 0.0s
✔ Container work-mydb-1 Removed 0.0s
도커 완료~!
'요즘공부' 카테고리의 다른 글
[도커&쿠버네티스] 교육 4일차_ 쿠버네티스 설치1 (0) | 2025.04.01 |
---|---|
[도커&쿠버네티스] 교육 3일차_ Docker 서버 2개 운용 (0) | 2025.03.18 |
[도커&쿠버네티스] 교육 3일차_ Docker Hub Upload (0) | 2025.03.17 |
[도커&쿠버네티스] 교육 3일차_ Dockerfile 실습(저장용량) (0) | 2025.03.14 |
[도커&쿠버네티스] 교육 3일차_ Dockerfile ONBUILD, ADD 등 (0) | 2025.03.13 |