Toán tin vuotlen.com

Cách cài đặt docker registry miễn phí

Registry, nơi push image để pull về:

  1. Dockerhub

Server:

docker images // hiện ra cách images đang có trên server

Vào hub.docker.com // login vào

docker login

nhập username và password vào

ls –a // có .docker

ls .docker/ // sẽ có file config.json

công thức mẫu để push lên: docker image = domain/project/repo:tag

// đã login vào docker, đã hiểu domain là dockerhub

docker images

docker tag todolist:v1 elroydevops/todolist:v1  || đổi tên todolist:v1 thành ....

docker images // đã có elroydevops/todolist:v1 

docker push elroydevops/todolist:v1

lên hub.docker.com kiểm tra, đã có images.

docker logout

docker images

docker rmi elroydevops/todolist:v1

docker pull elroydevops/todolist:v1

docker images

đã có elroydevops/todolist:v1

  1. Self-certified

Tạo 1 server mới (docker-ser):

Cài docker (bài cũ)

Trong /tools/docker thì cd ..

mkdir registry

cd registry

apt install ssl

mkdir certs

openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -subj "/CN=192.168.1.100" -addext "subjectAltName=DNS:192.168.1.100,IP:192.168.1.100" -x509 -days 365 -out certs/domain.crt

// kiểm tra ip trước khi chạy

ls certs // ra domain.crt và domain.key

Google gõ: registry 2 docker image

vi docker-compose.yml

//

version: '3'

services:

  registry:

    image: registry:2

    restart: always

    container_name: registry-server

    ports:

      - "5000:5000"

    volumes:

      - ./data:/var/lib/registry

      - ./certs:/certs

    environment:

      REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt

      REGISTRY_HTTP_TLS_KEY: /certs/domain.key

//

openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -subj "/CN=192.168.1.100" -addext "subjectAltName=DNS:192.168.1.100,IP:192.168.1.100" -x509 -days 365 –out certs/domain.crt

// kiểm tra ip trước khi chạy

ls // sẽ có certs và docker-compose.yml

hiện tại đang ở /tools/registry

mkdir data

docker-compose up –d

docker-compose ps

sẽ thấy image registry2 chạy port 5000

Chrome gõ: ip:5000 dùng với https

Sau đó thử với ip:5000/v2/_catalog

docker login 192.168.1.100:5000 // xem lại ip =

username:a // enter // pass // enter

báo failed to verify // ko có tổ chức chứng thực, chỉ đang tự xác thực

mkdir –p /etc/docker/certs.d/192.168.1.100:5000 // tự tạo thư mục search

cp certs/domain.crt /etc/docker/certs.d/192.168.1.100:5000/ca.crt // đổi tên thành crt

systemctl restart docker

docker login 192.168.1.100:5000

username:a // enter // pass // enter

login thành công, đây là chứng chỉ tự ký, nên cũng cần tự xác nhận

mkdir –p /etc/docker/certs.d/192.168.1.100:5000

scp certs/domain.crt manhnv@192.168.1.110:/home/manhnv

yes

copy thành công crt từ server registry sang server hiện tại

mkdir –p /etc/docker/certs.d/192.168.1.100:5000

cp /home/manhnv/domain.crt /etc/docker/certs.d/192.168.1.100:5000/ca.crt

system restart docker

docker login 192.168.1.100:5000

username:a // enter // pass // enter

Login thành công

docker images

docker tag todolist:v1 192.168.1.100:5000/elroydevops/todolist:v1

docker push 192.168.1.100:5000/elroydevops/todolist:v1

Lên google: 192.168.1.100:5000/v2/_catalog

Hiện cái vừa update

  1. Harbor

Tạo aws account

Vào thanh search: ec2

Launch instance

Name: register server

Chọn ubuntu (22.04) (t2.micro – free tier eligible)

Create new key pair: key-register, lưu lại

Allow ssh, allow https, allow http

Storage: 8GB

Nhấn vào id instance

Nhấn vào id server, chọn vào connect

// nhìn bên dưới có cái publicIPs

sudo –i

// add domain prefix

Lấy cái public ip, add vào domain (registry.domain với publicIP)

Cài đặt docker và docker compose

apt install certbot –y

ở folder tools

mkdir harbor

curl -s https://api.github.com/repos/goharbor/harbor/releases/latest \ | grep browser_download_url \ | cut -d '"' -f 4 \ | grep '\.tgz$' \ | wget -i –

ls // có 2 file harbor off và onl

tar xnzf harbor-off tab

cd harbor // có file harbor.yml.tmpl

cp harbor.yml.tmpl harbor.yml

export DOMAIN=” registry.domain”

export EMAIL=”fsdfsd@fds.com”

cerbot certonly --standalone –d $DOMAIN –preferred=challenges http –agree=tos –m $EMAIL –keep-until-expiring // certonly lấy mà ko cài đặt, đang cài thủ công registry, standalone là sử dụng 1 web server độc lập tích hợp với domain, ...http là tích hợp với http, agree đồng ý với tổ chức, email, giữ chứng chỉ hiện tại nếu chúng còn hiệu lực

y(es)

copy cái certificate in saved at

nano harbor.yml // password: Harbor12345

hostname: thành hostname

certificate: pass cái vừa copy

private_key: pass vào, sửa đuôi thành privkey.pem

ls

./prepare

./install.sh

docker-compose ps

Về server:

docker login registry.domain

username: admin

password: Harbor12345

docker tag todolist:v1 registry.domain/elroy/todolist:v1

docker images

docker push  registry.domain/elroy/todolist:v1

bảo mật whitelist ip mới vào đc trang registry.domain