Docker----harbor service

Table of contents

 1. Introduction to harbor

2. Harbor service deployment

1. Upload the file to the opt directory

2. Unzip to the installation directory

3. Configure the parameter file of harbor

4. Execute the running script

5. View

3. Verification 

1. Download a small mirror image to facilitate experiments

2. Log in to Harbor through the command line

3. Tag the image that needs to be uploaded

4. Upload to the harbor warehouse


This experiment is based on the docker-compose article, otherwise it cannot be completed

 1. Introduction to harbor

        Harbor is a cloud-native artifact warehouse open sourced by VMware. The core function of Harbor is to store and manage artifacts. Harbor allows users to use command line tools to push and pull container images and other artifacts, and provides a graphical management interface to help users view and manage these artifacts. (registry is its core component)

        The advantages of Harbor over registry are: harbor supports multiple functions, graphical interface management, multi-user permissions, role management mechanism, and security mechanism. The registry is in the form of a pure character interface.

        Environmental requirements: The server host needs to install Python, Docker, and Docker Compose. (The web environment supports the PY language, so Python needs to be installed)

2. Harbor service deployment

1. Upload the file to the opt directory

[root@zwb_docker opt]# rz -E
rz waiting to receive.
harbor-offline-installer-v1.2.2.tgz    rh

2. Unzip to the installation directory

[root@zwb_docker opt]# tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

3. Configure the parameter file of harbor

[ root@zwb_docker harbor]# pwd ## host
/usr/local/harbor
[root@zwb_docker harbor]# vim harbor.cfg  

4. Execute the running script

[root@zwb_docker harbor]# sh install.sh 

[root@zwb_docker harbor]# sh install.sh 

[Step 0]: checking installation environment ...

Note: docker version: 20.10.18

Note: docker-compose version: 1.14.0

[Step 1]: loading Harbor images ...
dd60b611baaa: Loading layer  133.2MB/133.2MB
abf0579c40fd: Loading layer  1.536kB/1.536kB
ea1fc7bed9c5: Loading layer  22.48MB/22.48MB
1d6671367c69: Loading layer  7.168kB/7.168kB
b322bb3e4765: Loading layer  5.339MB/5.339MB
0cf512d418ac: Loading layer  9.728kB/9.728kB
4a7cdc0b1a2b: Loading layer   2.56kB/2.56kB
ef1130526636: Loading layer  22.48MB/22.48MB
Loaded image: vmware/harbor-ui:v1.2.2
4a050fccec52: Loading layer  12.16MB/12.16MB
d918d73369ec: Loading layer   17.3MB/17.3MB
22898836924e: Loading layer  15.87kB/15.87kB
Loaded image: vmware/notary-photon:server-0.5.0
76c156eab077: Loading layer    134MB/134MB
1eae6563289a: Loading layer  16.42MB/16.42MB
Loaded image: vmware/nginx-photon:1.11.13
2e814f7ef645: Loading layer  2.048kB/2.048kB
bc5742b580db: Loading layer  2.048kB/2.048kB
5413bcdb81b0: Loading layer   2.56kB/2.56kB
c4e2be066795: Loading layer  3.584kB/3.584kB
a4ea62be60b0: Loading layer   22.8MB/22.8MB
800a351ae5da: Loading layer   22.8MB/22.8MB
Loaded image: vmware/registry:2.6.2-photon
Loaded image: photon:1.0
a39bd6a7f897: Loading layer  10.95MB/10.95MB
6f79b8337a1f: Loading layer   17.3MB/17.3MB
74bbd0e81dd0: Loading layer  15.87kB/15.87kB
Loaded image: vmware/notary-photon:signer-0.5.0
2202528221a2: Loading layer   7.07MB/7.07MB
4fe250d3c912: Loading layer   7.07MB/7.07MB
Loaded image: vmware/harbor-adminserver:v1.2.2
9463fb852970: Loading layer  75.37MB/75.37MB
d2c9a2a395d9: Loading layer  3.584kB/3.584kB
b08aea2a8a82: Loading layer  3.072kB/3.072kB
103e65a1013b: Loading layer  3.072kB/3.072kB
Loaded image: vmware/harbor-log:v1.2.2
5d6cbe0dbcf9: Loading layer  129.2MB/129.2MB
435f2dfbd884: Loading layer  344.6kB/344.6kB
814d7b59f0cc: Loading layer  4.657MB/4.657MB
aae399245bd0: Loading layer  1.536kB/1.536kB
21e2ae955f72: Loading layer  33.84MB/33.84MB
a2d0f7b84059: Loading layer  25.09kB/25.09kB
819fa6af55b8: Loading layer  3.584kB/3.584kB
78914c99a468: Loading layer  167.7MB/167.7MB
36e79c658afb: Loading layer  6.144kB/6.144kB
f73503aca003: Loading layer  9.216kB/9.216kB
a21b39f6da59: Loading layer  1.536kB/1.536kB
ef81eb7c77b3: Loading layer  8.704kB/8.704kB
08d0cfe60b0d: Loading layer  4.608kB/4.608kB
0864dda8f611: Loading layer  4.608kB/4.608kB
Loaded image: vmware/harbor-db:v1.2.2
29d1f4ae97dd: Loading layer  18.31MB/18.31MB
7caf936e1402: Loading layer  18.31MB/18.31MB
Loaded image: vmware/harbor-jobservice:v1.2.2
78dbfa5b7cbc: Loading layer  130.9MB/130.9MB
5f70bf18a086: Loading layer  1.024kB/1.024kB
8deec01122be: Loading layer  344.6kB/344.6kB
574ab36807f2: Loading layer  1.536kB/1.536kB
d8f2cde2eef8: Loading layer  20.48kB/20.48kB
eaa3924b054e: Loading layer   5.12kB/5.12kB
8aa2c772121c: Loading layer  184.3MB/184.3MB
c3014bbccb0b: Loading layer  8.704kB/8.704kB
978a35efaa8c: Loading layer  4.608kB/4.608kB
c2385ae7d6e5: Loading layer   16.6MB/16.6MB
Loaded image: vmware/harbor-notary-db:mariadb-10.1.10
c192a34d4ff4: Loading layer  155.2MB/155.2MB
d012a9276a83: Loading layer  10.75MB/10.75MB
b8befd881cb5: Loading layer  10.75MB/10.75MB
Loaded image: vmware/clair:v2.0.1-photon
bbda1562018e: Loading layer  101.6MB/101.6MB
1171ab08cc04: Loading layer  6.656kB/6.656kB
6df81d3a0683: Loading layer  6.656kB/6.656kB
Loaded image: vmware/postgresql:9.6.4-photon


[Step 2]: preparing environment ...
Clearing the configuration file: ./common/config/adminserver/env
Clearing the configuration file: ./common/config/ui/env
Clearing the configuration file: ./common/config/ui/app.conf
Clearing the configuration file: ./common/config/ui/private_key.pem
Clearing the configuration file: ./common/config/db/env
Clearing the configuration file: ./common/config/jobservice/env
Clearing the configuration file: ./common/config/jobservice/app.conf
Clearing the configuration file: ./common/config/registry/config.yml
Clearing the configuration file: ./common/config/registry/root.crt
Clearing the configuration file: ./common/config/nginx/nginx.conf
loaded secret from file: /data/secretkey
Generated configuration file: ./common/config/nginx/nginx.conf
Generated configuration file: ./common/config/adminserver/env
Generated configuration file: ./common/config/ui/env
Generated configuration file: ./common/config/registry/config.yml
Generated configuration file: ./common/config/db/env
Generated configuration file: ./common/config/jobservice/env
Generated configuration file: ./common/config/jobservice/app.conf
Generated configuration file: ./common/config/ui/app.conf
Generated certificate, key file: ./common/config/ui/private_key.pem, cert file: ./common/config/registry/root.crt
The configuration files are ready, please use docker-compose to start the service.


[Step 3]: checking existing instance of Harbor ...


[Step 4]: starting Harbor ...
Creating harbor-log ... 
Creating harbor-log ... done
Creating registry ... 
Creating harbor-db ... 
Creating harbor-adminserver ... 
Creating registry
Creating harbor-db
Creating registry ... done
Creating harbor-ui ... 
Creating harbor-ui ... done
Creating nginx ... 
Creating harbor-jobservice ... 
Creating harbor-jobservice
Creating nginx ... done

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://192.168.159.68 . 
For more details, please visit https://github.com/vmware/harbor .

5. View

[root@zwb_docker harbor]# docker-compose ps
                Name                                 Command                                 State                                  Ports                 
---------------------------------------------------------------------------------------------------------------------------------------------------------
harbor-adminserver                     /harbor/harbor_adminserver             Up                                                                          
harbor-db                              docker-entrypoint.sh mysqld            Up                                     3306/tcp                             
harbor-jobservice                      /harbor/harbor_jobservice              Up                                                                          
harbor-log                             /bin/sh -c crond && rm -f  ...         Up                                     127.0.0.1:1514->514/tcp              
harbor-ui                              /harbor/harbor_ui                      Up                                                                          
nginx                                  nginx -g daemon off;                   Up                                     0.0.0.0:443->443/tcp,:::443->443/tcp 
                                                                                                                     , 0.0.0.0:4443->4443/tcp,:::4443->44 
                                                                                                                     43/tcp,                              
                                                                                                                     0.0.0.0:80->80/tcp,:::80->80/tcp     
registry                               /entrypoint.sh serve /etc/ ...         Up                                     5000/tcp           

browser access

 

 The address configured with Harbor was previously configured in the daemom.json file of docker and deleted

[root@zwb_docker docker]# systemctl daemon-reload ## Reload daemon process
[root@zwb_docker docker]# systemctl restart docker.service ## Restart service

Set in the docker.server file: let docker point to the harbor warehouse when it starts

Restart the service:

[root@zwb_docker docker]# cd /usr/local/harbor/
[root@zwb_docker harbor]# docker-compose up -d


[root@zwb_docker harbor]# docker ps 
CONTAINER ID   IMAGE                              COMMAND                  CREATED       STATUS              PORTS                                                                                                 NAMES
44d333a47740   vmware/harbor-jobservice:v1.2.2    "/harbor/harbor_jobs…"   4 hours ago   Up About a minute                                                                                                         harbor-jobservice
20f31cd89ebd   vmware/nginx-photon:1.11.13        "nginx -g 'daemon of…"   4 hours ago   Up 27 seconds       0.0.0.0:80->80/tcp, :::80->80/tc443/tcp, :::443->443/tcp, 0.0.0.0:4443->4443/tcp, :::4443->4443/tcp   nginx
f5fd0a1aea60   vmware/harbor-ui:v1.2.2            "/harbor/harbor_ui"      4 hours ago   Up About a minute                                                                                                         harbor-ui
28358bcc064c   vmware/harbor-adminserver:v1.2.2   "/harbor/harbor_admi…"   4 hours ago   Up About a minute                                                                                                         harbor-adminserver
863b61ac76c6   vmware/harbor-db:v1.2.2            "docker-entrypoint.s…"   4 hours ago   Up About a minute   3306/tcp                                                                                              harbor-db
2de21a6db7a1   vmware/registry:2.6.2-photon       "/entrypoint.sh serv…"   4 hours ago   Up About a minute   5000/tcp                                                                                              registry
26010cca51d2   vmware/harbor-log:v1.2.2           "/bin/sh -c 'crond &…"   4 hours ago   Up 49 minutes       127.0.0.1:1514->514/tcp                                                                               harbor-log

3. Verification 

1. Download a small mirror image to facilitate experiments

[root@zwb_docker harbor]# docker pull cirros

[root@zwb_docker harbor]# docker pull cirros
Using default tag: latest
latest: Pulling from library/cirros
d0b405be7a32: Pull complete 
bd054094a037: Pull complete 
c6a00de1ec8a: Pull complete 
Digest: sha256:1e695eb2772a2b511ccab70091962d1efb9501fdca804eb1d52d21c0933e7f47
Status: Downloaded newer image for cirros:latest
docker.io/library/cirros:latest

2. Log in to Harbor through the command line

[root@zwb_docker harbor]# docker login -u admin -p Harbor12345 http://127.0.0.1
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
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                    ### 登录成功

3. Tag the image that needs to be uploaded

## 打tag
[root@zwb_docker harbor]# docker tag cirros:latest 127.0.0.1/public-libary/cirros:v2
[root@zwb_docker harbor]# docker push 127.0.0.1/public-libary/cirros:v2 

4. Upload to the harbor warehouse

[root@zwb_docker harbor]# docker push 127.0.0.1/public-libary/cirros:v2 
The push refers to repository [127.0.0.1/public-libary/cirros]
984ad441ec3d: Layer already exists 
f0a496d92efa: Layer already exists 
e52d19c3bee2: Layer already exists 
v2: digest: sha256:483f15ac97d03dc3d4dcf79cf71ded2e099cf76c340f3fdd0b3670a40a198a22 size: 943

## View warehouse upload success

 Delete the local mirror and download it from the warehouse

[root@zwb_docker harbor]# docker rmi 127.0.0.1/public-libary/cirros:v2 
Untagged: 127.0.0.1/public-libary/cirros:v2
Untagged: 127.0.0.1/public-libary/cirros@sha256:483f15ac97d03dc3d4dcf79cf71ded2e099cf76c340f3fdd0b3670a40a198a22

 Download from repository

[root@zwb_docker harbor]# docker pull 192.168.159.68/public-libary/cirros:v2
v2: Pulling from public-libary/cirros
Digest: sha256:483f15ac97d03dc3d4dcf79cf71ded2e099cf76c340f3fdd0b3670a40a198a22
Status: Downloaded newer image for 192.168.159.68/public-libary/cirros:v2
192.168.159.68/public-libary/cirros:v2
[root@zwb_docker harbor]# docker images
REPOSITORY                            TAG               IMAGE ID       CREATED         SIZE
dockercompose_nginx                   latest            b7d47c45767d   6 hours ago     205MB
<none>                                <none>            a3e7e0eecf4f   6 hours ago     308MB
centos                                7                 eeb6ee3f44bd   13 months ago   204MB
192.168.159.68/public-libary/cirros   v2                f9cae1daf5f6   19 months ago   12.6MB
cirros                                latest            f9cae1daf5f6   19 months ago   12.6MB
vmware/harbor-log                     v1.2.2            36ef78ae27df   5 years ago     200MB
vmware/harbor-jobservice              v1.2.2            e2af366cba44   5 years ago     164MB
vmware/harbor-ui                      v1.2.2            39efb472c253   5 years ago     178MB
vmware/harbor-adminserver             v1.2.2            c75963ec543f   5 years ago     142MB
vmware/harbor-db                      v1.2.2            ee7b9fa37c5d   5 years ago     329MB
vmware/nginx-photon                   1.11.13           6cc5c831fc7f   5 years ago     144MB
vmware/registry                       2.6.2-photon      5d9100e4350e   5 years ago     173MB
vmware/postgresql                     9.6.4-photon      c562762cbd12   5 years ago     225MB
vmware/clair                          v2.0.1-photon     f04966b4af6c   5 years ago     297MB
vmware/harbor-notary-db               mariadb-10.1.10   64ed814665c6   5 years ago     324MB
vmware/notary-photon                  signer-0.5.0      b1eda7d10640   5 years ago     156MB
vmware/notary-photon                  server-0.5.0      6e2646682e3c   5 years ago     157MB
photon                                1.0               e6e4e4a2ba1b   6 years ago     128MB

 Download completed. If not in the warehouse, it will be automatically downloaded to the public warehouse

Guess you like

Origin blog.csdn.net/m0_62948770/article/details/127460122
Recommended