Instalación y configuración del almacén espejo de nivel empresarial Harbor

Puerto

Descripción general del puerto

Harbour es un sistema de gestión de almacén de imágenes de contenedores de código abierto con ricas funciones de gestión y seguridad. Puede construir almacenes privados en entornos empresariales y proporcionar características como confiabilidad, soporte para múltiples inquilinos y personalización.

Página web oficial:https://goharbor.io/

GitHub:https://github.com/goharbor/harbor

Harbour tiene como objetivo proporcionar soluciones de gestión de imágenes a nivel empresarial con las siguientes características y funciones:

seguridad:

Harbor proporciona un amplio conjunto de funciones de seguridad, que incluyen autenticación y autorización de usuarios, verificación de firmas de imágenes, control de acceso, escaneo de vulnerabilidades, etc. Esto le ayuda a proteger sus imágenes de ataques y exploits maliciosos.

Credibilidad:

Harbor admite la firma digital y la verificación de imágenes para garantizar su integridad y origen confiable. Puede utilizar un certificado personalizado o de terceros para firmar y verificar la autenticidad de su imagen.

Soporte para múltiples inquilinos:

Harbor admite múltiples proyectos y múltiples almacenes, que pueden agruparse y administrarse según diferentes organizaciones, equipos o proyectos. Cada proyecto puede tener sus propios permisos de usuario y políticas de control de acceso.

Personalización:

Harbour ofrece opciones de configuración flexibles y mecanismos de expansión que se pueden personalizar según sus necesidades. Puede ajustar configuraciones como almacenamiento, redes y autenticación para adaptarse a diferentes entornos y necesidades.

alto rendimiento:

Harbor utiliza estrategias de replicación y almacenamiento en caché para mejorar la velocidad y la disponibilidad del acceso a las imágenes. Admite múltiples backends de almacenamiento espejo, incluido el almacenamiento local, el almacenamiento S3, etc.

Interfaz amigable:

Harbour proporciona una interfaz web intuitiva y fácil de usar que puede administrar fácilmente imágenes, proyectos, usuarios, permisos de acceso, etc.

Instalar puerto

Descargue el archivo binario de Harbor para la instalación.Referencia de instalación y configuración de Harbor:https://goharbor.io/docs/2.9.0/install-config/

Descargar el paquete de instalación sin conexión

wget https://github.com/goharbor/harbor/releases/download/v2.7.3/harbor-offline-installer-v2.7.3.tgz

Descomprima el paquete de instalación

tar -zxvf harbor-offline-installer-v2.7.3.tgz
[root@master harbor]# ls
common.sh  harbor.v2.7.3.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

Ingrese al directorio del puerto

cd harbor

Configurar puerto

cp harbor.yml.tmpl  harbor.yml

vim harbor.yml

# 当前节点主机名或IP
hostname: 112.74.96.150

# http端口配置
http:
  port: 8080

# 这里不使用https,注释该配置
#https:
  # https port for harbor, default is 443
#  port: 443
  # The path of cert and key files for nginx
#  certificate: /your/certificate/path
#  private_key: /your/private/key/path  

# Harbor UI的初始密码  
harbor_admin_password: Harbor12345

# The default data volume
data_volume: /usr/local/program/harbor/data

Ejecute el script del instalador

Después de configurar Harbor.yml, puede utilizar el script install.sh para instalar e iniciar Harbor.

./install.sh

Si la instalación se realiza correctamente, se generará el siguiente registro:

[Step 5]: starting Harbor ...
[+] Running 10/10
 ✔ Network harbor_harbor        Created                                                                                                                                                0.1s
 ✔ Container harbor-log         Started                                                                                                                                                0.1s
 ✔ Container registryctl        Started                                                                                                                                                0.2s
 ✔ Container harbor-db          Started                                                                                                                                                0.1s
 ✔ Container redis              Started                                                                                                                                                0.1s
 ✔ Container registry           Started                                                                                                                                                0.1s
 ✔ Container harbor-portal      Started                                                                                                                                                0.2s
 ✔ Container harbor-core        Started                                                                                                                                                0.1s
 ✔ Container harbor-jobservice  Started                                                                                                                                                0.1s
 ✔ Container nginx              Started                                                                                                                                                0.1s
✔ ----Harbor has been installed and started successfully.----

Vea la imagen de la ventana acoplable y aparecerá una lista de imágenes relacionadas con Hardor.


[root@master harbor]# docker ps
CONTAINER ID   IMAGE                                COMMAND                  CREATED              STATUS                        PORTS                       NAMES
62343618f630   goharbor/nginx-photon:v2.7.3         "nginx -g 'daemon of…"   About a minute ago   Up About a minute (healthy)   0.0.0.0:8080->8080/tcp      nginx
a39ecd6eddf1   goharbor/harbor-jobservice:v2.7.3    "/harbor/entrypoint.…"   About a minute ago   Up About a minute (healthy)                               harbor-jobservice
f0c1a4957d04   goharbor/harbor-core:v2.7.3          "/harbor/entrypoint.…"   About a minute ago   Up About a minute (healthy)                               harbor-core
f64062148ccf   goharbor/harbor-registryctl:v2.7.3   "/home/harbor/start.…"   About a minute ago   Up About a minute (healthy)                               registryctl
6fc3d92cc65f   goharbor/harbor-db:v2.7.3            "/docker-entrypoint.…"   About a minute ago   Up About a minute (healthy)                               harbor-db
fc9917cad78e   goharbor/harbor-portal:v2.7.3        "nginx -g 'daemon of…"   About a minute ago   Up About a minute (healthy)                               harbor-portal
8622fab2670f   goharbor/registry-photon:v2.7.3      "/home/harbor/entryp…"   About a minute ago   Up About a minute (healthy)                               registry
27e3ba43f9f8   goharbor/redis-photon:v2.7.3         "redis-server /etc/r…"   About a minute ago   Up About a minute (healthy)                               redis
feef079dcbd4   goharbor/harbor-log:v2.7.3           "/bin/sh -c /usr/loc…"   About a minute ago   Up About a minute (healthy)   127.0.0.1:1514->10514/tcp   harbor-log

Acceso

Acceso al navegador http://IP:8080
Insertar descripción de la imagen aquí
Utilice nombre de usuario: admin, contraseña configurada: Harbor12345para iniciar sesión
Insertar descripción de la imagen aquí

Iniciar y detener el puerto

Parada Puerto

[root@master harbor]# docker-compose stop
[+] Running 9/9
 ⠿ Container harbor-jobservice  Stopped                                                                                                                                                0.0s
 ⠿ Container nginx              Stopped                                                                                                                                                0.0s
 ⠿ Container registryctl        Stopped                                                                                                                                               10.2s
 ⠿ Container harbor-portal      Stopped                                                                                                                                                0.3s
 ⠿ Container harbor-core        Stopped                                                                                                                                                0.0s
 ⠿ Container harbor-db          Stopped                                                                                                                                                0.4s
 ⠿ Container registry           Stopped                                                                                                                                                0.2s
 ⠿ Container redis              Stopped                                                                                                                                                0.5s
 ⠿ Container harbor-log         Stopped                                                                                                                                               10.2s

Puerto de inicio

[root@master harbor]# docker-compose start
[+] Running 9/9
 ⠿ Container harbor-log         Started                                                                                                                                                0.3s
 ⠿ Container redis              Started                                                                                                                                                0.9s
 ⠿ Container registryctl        Started                                                                                                                                                0.7s
 ⠿ Container harbor-portal      Started                                                                                                                                                1.0s
 ⠿ Container harbor-db          Started                                                                                                                                                0.8s
 ⠿ Container registry           Started                                                                                                                                                1.0s
 ⠿ Container harbor-core        Started                                                                                                                                                0.3s
 ⠿ Container nginx              Started                                                                                                                                                0.5s
 ⠿ Container harbor-jobservice  Started 

Iniciar sesión en el almacén del puerto

Para iniciar sesión en el repositorio privado de Harbor, ejecute el siguiente comando para iniciar sesión en el repositorio de Harbor:

docker login <Harbor仓库地址>

Excepción de inicio de sesión

[root@master harbor]# docker login 112.74.96.150:8080
Username: admin
Password:
Error response from daemon: Get "https://112.74.96.150:8080/v2/": http: server gave HTTP response to HTTPS client

razón:

De forma predeterminada, se comunica con el almacén de Harbor a través del protocolo HTTPS, pero el almacén de Harbor solo está configurado con el servicio HTTP y no habilita el servicio HTTPS.

solución

Opcion uno:

Busque el directorio donde se encuentra docker.service

[root@master harbor]# find / -name docker.service -type f
/usr/lib/systemd/system/docker.service

editar vim /usr/lib/systemd/system/docker.service

Modifique esta línea de configuración:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Utilice --insecurela opción para omitir la verificación del certificado https, cámbiela a lo siguiente:

ExecStart=/usr/bin/dockerd --insecure-registry 112.74.96.150:8080  -H fd:// --containerd=/run/containerd/containerd.sock

Opción II:

Modifique /etc/docker/daemon.jsonel archivo, agregue configuración y especifique la dirección IP del almacén espejo

{
    
    
	"insecure-registries": ["112.74.96.150"]
}

Acceso

Vuelva a cargar la configuración y reinicie la ventana acoplable

systemctl daemon-reload
systemctl restart docker

Ingresar de nuevo

Nota: Es posible que tengas que reiniciar Harbour

[root@master harbor]# docker login 112.74.96.150:8080
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

abandonar

Salga del estado de inicio de sesión del almacén privado Harbour

docker logout <Harbor仓库地址>
[root@master ~]# docker login 112.74.96.150:8080
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

Empujar y tirar de la imagen del puerto

Convención de nomenclatura de imágenes

Existen ciertas convenciones de nomenclatura para los nombres de las imágenes de Harbour. La diferencia es que el nombre del proyecto debe usarse como parte del nombre de la imagen. Para obtener más detalles, consulte los siguientes ejemplos.

Construir imagen

docker build -t <Harbor仓库地址>/<项目名称>/<镜像名称>:<标签> .

Enviar la imagen al repositorio de Harbour

docker push <Harbor仓库地址>/<项目名称>/<镜像名称>:<标签>

Imagen de Pull Harbor

docker pull <Harbor仓库地址>/<项目名称>/<镜像名称>:<标签>

Crear proyecto

Cree un proyecto en la interfaz del repositorio de Harbor o utilizando la API de Harbor

Creación de interfaz
Insertar descripción de la imagen aquí
Creación de API Harbour

curl -X POST -u username:password -H "Content-Type: application/json" -d '{
  "project_name": "projectname",
  "public": 1,
  "content_trust": "disabled"
}' https://<Harbor仓库地址>/api/projects

Empujar imagen

Sacar una imagen de prueba

[root@master ~]# docker pull testcontainers/helloworld

Ver esta imagen

[root@master ~]# docker images | grep hello
testcontainers/helloworld       latest       6974669be52b   2 years ago     12.7MB

Marque la imagen local y colóquela en el almacén del puerto.

Nota: Se requiere un nivel más como nombre del proyecto.

[root@master harbor]# docker tag testcontainers/helloworld:latest 112.74.96.150:8080/projectname/helloworld:v1

Ver la imagen nuevamente

[root@master harbor]# docker images | grep hello
112.74.96.150:8080/projectname/helloworld   v1           6974669be52b   2 years ago     12.7MB
testcontainers/helloworld                   latest       6974669be52b   2 years ago     12.7MB

Envíe la imagen local al almacén espejo (primero debe iniciar sesión en el almacén espejo)

[root@master harbor]# docker push  112.74.96.150:8080/projectname/helloworld:v1
The push refers to repository [112.74.96.150:8080/projectname/helloworld]
802cca11a560: Pushing [============================================>      ]  6.194MB/7.019MB
80b7fe966245: Pushed
50644c29ef5a: Pushing [=============================================>     ]  5.068MB/5.575MB

Inicie sesión en Harbour y verifique projectnameen el nuevo proyecto. Una imagen se ha enviado correctamente.

Insertar descripción de la imagen aquí

Extraer imagen

Eliminar imagen existente

[root@master harbor]# docker images | grep hello
112.74.96.150:8080/projectname/helloworld   v1           6974669be52b   2 years ago     12.7MB
testcontainers/helloworld                   latest       6974669be52b   2 years ago     12.7MB

[root@master harbor]# docker rmi 112.74.96.150:8080/projectname/helloworld:v1
Untagged: 112.74.96.150:8080/projectname/helloworld:v1
Untagged: 112.74.96.150:8080/projectname/helloworld@sha256:4ee5a832ef6eee533df7224b80d4cceb9ab219599014f408d0b69690be94c396

[root@master harbor]# docker rmi testcontainers/helloworld:latest
Untagged: testcontainers/helloworld:latest
Untagged: testcontainers/helloworld@sha256:4ee5a832ef6eee533df7224b80d4cceb9ab219599014f408d0b69690be94c396

Saca la imagen de Harbour

[root@master harbor]# docker pull 112.74.96.150:8080/projectname/helloworld:v1
v1: Pulling from projectname/helloworld
df20fa9351a1: Downloading [==========>                                        ]  614.1kB/2.798MB
7d694ce25b07: Download complete
99f5116afda5: Downloading [================================>                  ]  
2.389MB/3.655MB

Ver la imagen extraída

[root@master harbor]# docker images | grep hell
112.74.96.150:8080/projectname/helloworld   v1           6974669be52b   2 years ago     12.7MB

Supongo que te gusta

Origin blog.csdn.net/qq_38628046/article/details/132848771
Recomendado
Clasificación