系统版本:CentOS Linux release 7.6.1810 (Core)

docker版本:20.10.12

docker-compose版本:v2.3.2

docker-compose 百度网盘下载地址:

链接:https://pan.baidu.com/s/1hMYyP_zLeZXNfkWkZgXxQQ 
提取码:l1cv 

一、安装docker

1、添加 docker 的阿里云yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2、查看 docker-ce 有哪些版本

yum list docker-ce --showduplicates | sort -r

3、安装 docker-ce (ce社区版的意思)

yum -y install docker-ce-20.10.12-3.el7 docker-ce-cli-20.10.12-3.el7

4、启动 docker 并设置开机自启

systemctl enable --now docker

5、修改daemon,并添加http的通信地址,不然docker默认使用https进行通信,如果配置了https协议就不需要添加

## 如果不修改,可能会碰到如下错误,只是不一定

## [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".

# 将/usr/lib/systemd/system/docker.service文件中的这一行
# ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
 
# 修改为 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd
 
# 如果不修改,在添加 worker 节点时可能会碰到如下错误
# [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The # recommended driver is "systemd". 
# Please follow the guide at https://kubernetes.io/docs/setup/cri/
 
 
# 使用如下命令修改  
sed -i.bak "s#^ExecStart=/usr/bin/dockerd.*#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd#g" /usr/lib/systemd/system/docker.service

mkdir /etc/docker

# docker优化
# registry-mirrors  自定义的镜像地址
# 修改docker Cgroup Driver 为systemtd启动管理,是k8s需要,默认是cgroupfs
# max-concurrent-downloads: 最大并发下载
# max-concurrent-uploads: 最大并发上传
# log-driver: 日志格式化为 JSON。这是 Docker 默认的日志驱动程序。
# log-opts: 日志设置,单文件最大,最大几个文件
# 容器的日志都在 /var/lib/docker/containers/容器名/xxx.log
# live-restore: 在docker守护进程不可用时使容器保持活动状态
# 
cat > /etc/docker/daemon.json <<'EOF' 
{
    "registry-mirrors": [
        "https://nr240upq.mirror.aliyuncs.com",
        "https://registry.docker-cn.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://dockerhub.azk8s.cn",
        "http://hub-mirror.c.163.com"
    ],
    "max-concurrent-downloads": 10,
    "max-concurrent-uploads": 5,
    "log-driver": "json-file",
    "log-opts": {
       "max-size": "300m",
       "max-file": "2"
    },
    "live-restore": true
}
EOF

改好之后,重新加载配置和重启docker 

systemctl daemon-reload && systemctl restart docker

二、安装docker-compose:

把在百度网盘下载的docker-compose文件到服务器里

chmod +x docker-compose-linux-x86_64 
mv docker-compose-linux-x86_64 /usr/local/sbin/docker-compose

三、安装harbor 

1、上传在百度网盘下载的harbor压缩包文件到服务器里:

[root@zabbix 14:58:29/data/recycle]# ll
total 1237904
-rw-r--r-- 1 root root 612698835 Mar  9 14:59 harbor-offline-installer-v2.4.1.tgz
[root@zabbix 14:59:20/data/recycle]#

2、解压harbor:

[root@zabbix 14:59:20/data/recycle]# tar zxf harbor-offline-installer-v2.4.1.tgz 
[root@zabbix 14:59:30/data/recycle]# ll
total 1237908
drwxr-xr-x 2 root root      4096 Mar  9 14:59 harbor
-rw-r--r-- 1 root root 612698835 Mar  9 14:59 harbor-offline-installer-v2.4.1.tgz

 3、移动到部署目录:

mv harbor /data/software/
cd /data/software/harbor/
[root@zabbix 15:00:00/data/software/harbor]# ll
total 601612
-rw-r--r-- 1 root root      3361 Dec 16 12:22 common.sh
-rw-r--r-- 1 root root 616006217 Dec 16 12:23 harbor.v2.4.1.tar.gz
-rw-r--r-- 1 root root      8999 Dec 16 12:22 harbor.yml.tmpl
-rwxr-xr-x 1 root root      2500 Dec 16 12:22 install.sh
-rw-r--r-- 1 root root     11347 Dec 16 12:22 LICENSE
-rwxr-xr-x 1 root root      1881 Dec 16 12:22 prepare

4、修改配置文件

[root@zabbix 15:00:06/data/software/harbor]# cp harbor.yml.tmpl harbor.yml

vim harbor.yml 

5、执行部署脚本:./install.sh

[root@zabbix 15:03:56/data/software/harbor]# ./install.sh 

[Step 0]: checking if docker is installed ...

Note: docker version: 20.10.12

[Step 1]: checking docker-compose is installed ...

Note: docker-compose version: 2.3.2

[Step 2]: loading Harbor images ...
1e3f0dc884e2: Loading layer [==================================================>]  39.45MB/39.45MB
3fd9ccd5eeaa: Loading layer [==================================================>]  5.275MB/5.275MB
c600bceee2f7: Loading layer [==================================================>]  4.096kB/4.096kB
724cd8711815: Loading layer [==================================================>]  3.072kB/3.072kB
d7c82a981c89: Loading layer [==================================================>]  17.32MB/17.32MB
a814341c2c44: Loading layer [==================================================>]  18.12MB/18.12MB
Loaded image: goharbor/registry-photon:v2.4.1
b00595b6932d: Loading layer [==================================================>]   5.27MB/5.27MB
e34892d856ce: Loading layer [==================================================>]  5.928MB/5.928MB
ac5a22c6047d: Loading layer [==================================================>]  14.47MB/14.47MB
3d1ac12eb215: Loading layer [==================================================>]  29.29MB/29.29MB
394b4b2ea0fa: Loading layer [==================================================>]  22.02kB/22.02kB
bb0deb7416e0: Loading layer [==================================================>]  14.47MB/14.47MB
Loaded image: goharbor/notary-signer-photon:v2.4.1
c3b02aec560c: Loading layer [==================================================>]  8.422MB/8.422MB
4d5b3acd128e: Loading layer [==================================================>]  3.584kB/3.584kB
7afbf44c3706: Loading layer [==================================================>]   2.56kB/2.56kB
31f95ac6eb9a: Loading layer [==================================================>]  75.59MB/75.59MB
8981a12f5c17: Loading layer [==================================================>]  5.632kB/5.632kB
16eb0821dcc3: Loading layer [==================================================>]  96.26kB/96.26kB
b19eba29a0de: Loading layer [==================================================>]  11.78kB/11.78kB
f0785d2e9965: Loading layer [==================================================>]  76.49MB/76.49MB
26ce29b9d7ab: Loading layer [==================================================>]   2.56kB/2.56kB
Loaded image: goharbor/harbor-core:v2.4.1
59e3814aa5f1: Loading layer [==================================================>]  119.8MB/119.8MB
1e99e9cd580e: Loading layer [==================================================>]  3.072kB/3.072kB
2bab205001c7: Loading layer [==================================================>]   59.9kB/59.9kB
c51450af480c: Loading layer [==================================================>]  61.95kB/61.95kB
Loaded image: goharbor/redis-photon:v2.4.1
3636ff090145: Loading layer [==================================================>]  8.421MB/8.421MB
fa3d57c372c8: Loading layer [==================================================>]  3.584kB/3.584kB
a2c97825dcbf: Loading layer [==================================================>]   2.56kB/2.56kB
366b1363b528: Loading layer [==================================================>]  86.95MB/86.95MB
3d2fd6d13a0f: Loading layer [==================================================>]  87.74MB/87.74MB
Loaded image: goharbor/harbor-jobservice:v2.4.1
8f71cf8bc1c6: Loading layer [==================================================>]  5.275MB/5.275MB
5cb3457d8e25: Loading layer [==================================================>]  4.096kB/4.096kB
02c18fad9dc6: Loading layer [==================================================>]  17.32MB/17.32MB
7bbcea1ec44e: Loading layer [==================================================>]  3.072kB/3.072kB
f2842e1ada70: Loading layer [==================================================>]  28.69MB/28.69MB
4665575c3f9e: Loading layer [==================================================>]  46.81MB/46.81MB
Loaded image: goharbor/harbor-registryctl:v2.4.1
439595cfbbc0: Loading layer [==================================================>]  7.192MB/7.192MB
Loaded image: goharbor/nginx-photon:v2.4.1
a19de03ace6b: Loading layer [==================================================>]   5.27MB/5.27MB
35bbd4cf35b6: Loading layer [==================================================>]  5.928MB/5.928MB
88f852ebd746: Loading layer [==================================================>]  15.88MB/15.88MB
e3c0db81a28c: Loading layer [==================================================>]  29.29MB/29.29MB
f74e521b7a55: Loading layer [==================================================>]  22.02kB/22.02kB
7d97a705f439: Loading layer [==================================================>]  15.88MB/15.88MB
Loaded image: goharbor/notary-server-photon:v2.4.1
1e6473070b18: Loading layer [==================================================>]    124MB/124MB
f05c1a477d2d: Loading layer [==================================================>]  3.584kB/3.584kB
bcab3e00aa98: Loading layer [==================================================>]  3.072kB/3.072kB
970d569f474a: Loading layer [==================================================>]   2.56kB/2.56kB
c659c9812277: Loading layer [==================================================>]  3.072kB/3.072kB
9d401ff8bf07: Loading layer [==================================================>]  3.584kB/3.584kB
968dfed00d2e: Loading layer [==================================================>]  19.97kB/19.97kB
Loaded image: goharbor/harbor-log:v2.4.1
b64000a1cd2c: Loading layer [==================================================>]  1.097MB/1.097MB
e3fb7ac15701: Loading layer [==================================================>]  5.889MB/5.889MB
d6e7f8008582: Loading layer [==================================================>]  165.9MB/165.9MB
eff0812a8c6f: Loading layer [==================================================>]  15.07MB/15.07MB
91a6abd7a540: Loading layer [==================================================>]  4.096kB/4.096kB
47e875926154: Loading layer [==================================================>]  6.144kB/6.144kB
04876e025d4a: Loading layer [==================================================>]  3.072kB/3.072kB
b817a88114e6: Loading layer [==================================================>]  2.048kB/2.048kB
e5fb37021dff: Loading layer [==================================================>]   2.56kB/2.56kB
767486d5c318: Loading layer [==================================================>]   2.56kB/2.56kB
b92f2b842b46: Loading layer [==================================================>]   2.56kB/2.56kB
e90e3a7ea4e9: Loading layer [==================================================>]  8.704kB/8.704kB
Loaded image: goharbor/harbor-db:v2.4.1
daf3d38cddc8: Loading layer [==================================================>]  8.422MB/8.422MB
8013b2cbc0b9: Loading layer [==================================================>]  18.13MB/18.13MB
4445f5ea7083: Loading layer [==================================================>]  4.608kB/4.608kB
32e035f0af8e: Loading layer [==================================================>]  18.93MB/18.93MB
Loaded image: goharbor/harbor-exporter:v2.4.1
0ad72e88d766: Loading layer [==================================================>]   8.54MB/8.54MB
fe195f48d47b: Loading layer [==================================================>]  4.096kB/4.096kB
71f2671db231: Loading layer [==================================================>]  3.072kB/3.072kB
ddda0b4a8eae: Loading layer [==================================================>]  39.27MB/39.27MB
c3fe76027866: Loading layer [==================================================>]  12.37MB/12.37MB
d82a7403c39a: Loading layer [==================================================>]  52.43MB/52.43MB
Loaded image: goharbor/trivy-adapter-photon:v2.4.1
03e449493f09: Loading layer [==================================================>]  5.275MB/5.275MB
4f4a25c7cc0d: Loading layer [==================================================>]   64.5MB/64.5MB
77a37df05436: Loading layer [==================================================>]  3.072kB/3.072kB
47c58e48962d: Loading layer [==================================================>]  4.096kB/4.096kB
5dd56c28f3fc: Loading layer [==================================================>]  65.29MB/65.29MB
Loaded image: goharbor/chartmuseum-photon:v2.4.1
8b7cbddd8918: Loading layer [==================================================>]  165.6MB/165.6MB
b8157b6f7cb8: Loading layer [==================================================>]   57.6MB/57.6MB
4a53b9a92b30: Loading layer [==================================================>]   2.56kB/2.56kB
59184fc56c3c: Loading layer [==================================================>]  1.536kB/1.536kB
99431fe2c10f: Loading layer [==================================================>]  12.29kB/12.29kB
3735b7f4881f: Loading layer [==================================================>]   2.62MB/2.62MB
bcff3633b236: Loading layer [==================================================>]  325.6kB/325.6kB
Loaded image: goharbor/prepare:v2.4.1
eb57d0945b2e: Loading layer [==================================================>]  7.192MB/7.192MB
dd9069fd53a8: Loading layer [==================================================>]  7.355MB/7.355MB
e779dab1d180: Loading layer [==================================================>]  1.754MB/1.754MB
Loaded image: goharbor/harbor-portal:v2.4.1


[Step 3]: preparing environment ...

[Step 4]: preparing harbor configs ...
prepare base dir is set to /data/software/harbor
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
Generated and saved secret to file: /data/secret/keys/secretkey
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir



[Step 5]: starting Harbor ...
[+] Running 10/10
 ? Network harbor_harbor        Created                                                                                            0.0s
 ? Container harbor-log         Started                                                                                            0.6s
 ? Container redis              Started                                                                                            1.3s
 ? Container registryctl        Started                                                                                            1.4s
 ? Container registry           Started                                                                                            1.4s
 ? Container harbor-db          Started                                                                                            1.4s
 ? Container harbor-portal      Started                                                                                            1.3s
 ? Container harbor-core        Started                                                                                            1.7s
 ? Container harbor-jobservice  Started                                                                                            2.3s
 ? Container nginx              Started                                                                                            2.4s
? ----Harbor has been installed and started successfully.----
[root@zabbix 15:04:47/data/software/harbor]#

6、配置开机自启:

/usr/local/sbin/docker-compose -f /data/software/harbor/docker-compose.yml up -d

 

 7、设置权限

chmod +x /etc/rc.local /etc/rc.d/rc.local

8、尝试登陆harbor

9、命令行登陆 

[root@zabbix 15:08:00/data/software/harbor]# docker login 172.17.0.100:5000
Username: admin
Password: 

Login Succeeded
[root@zabbix 15:08:57/data/software/harbor]# 

四、测试上传和下载

1、新建一个项目目录:

 

 2、我以nginx为例进行推送到harbor上:

[root@zabbix 16:45:33/data/software/harbor]# docker image ls | grep nginx
nginx                           latest     605c77e624dd   2 months ago    141MB
goharbor/nginx-photon           v2.4.1     78aad8c8ef41   2 months ago    45.7MB
[root@zabbix 16:45:42/data/software/harbor]# docker tag nginx:latest 172.17.0.100:5000/test/nginx1.8:v1
[root@zabbix 16:59:00/data/software/harbor]# docker image ls | grep nginx
172.17.0.100:5000/test/nginx1.8   v1         605c77e624dd   2 months ago    141MB
nginx                             latest     605c77e624dd   2 months ago    141MB
goharbor/nginx-photon             v2.4.1     78aad8c8ef41   2 months ago    45.7MB
[root@zabbix 16:59:04/data/software/harbor]# docker push 172.17.0.100:5000/test/nginx1.8:v1 
The push refers to repository [172.17.0.100:5000/test/nginx1.8]
d874fd2bc83b: Pushed 
32ce5f6a5106: Pushed 
f1db227348d0: Pushed 
b8d6e692a25e: Pushed 
e379e8aedd4d: Pushed 
2edcec3590a4: Pushed 
v1: digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3 size: 1570
[root@zabbix 16:59:25/data/software/harbor]# 

 3、查看镜像仓库,可以看到多了一个镜像

 4、镜像拉取(镜像下载)

[root@zabbix 16:59:25/data/software/harbor]# docker image rm 172.17.0.100:5000/test/nginx1.8:v1 
Untagged: 172.17.0.100:5000/test/nginx1.8:v1
Untagged: 172.17.0.100:5000/test/nginx1.8@sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3

[root@zabbix 17:01:15/data/software/harbor]# docker image ls | grep nginx
nginx                           latest     605c77e624dd   2 months ago    141MB
goharbor/nginx-photon           v2.4.1     78aad8c8ef41   2 months ago    45.7MB

[root@zabbix 17:02:07/data/software/harbor]# docker pull 172.17.0.100:5000/test/nginx1.8:v1
v1: Pulling from test/nginx1.8
Digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3
Status: Downloaded newer image for 172.17.0.100:5000/test/nginx1.8:v1
172.17.0.100:5000/test/nginx1.8:v1

[root@zabbix 17:02:12/data/software/harbor]# docker image ls | grep nginx
172.17.0.100:5000/test/nginx1.8   v1         605c77e624dd   2 months ago    141MB
nginx                             latest     605c77e624dd   2 months ago    141MB
goharbor/nginx-photon             v2.4.1     78aad8c8ef41   2 months ago    45.7MB
[root@zabbix 17:02:16/data/software/harbor]# 

至此,harbor部署完毕 

知识补充:

1、如果以后修改了harbor.yml文件,那么先停止使用docker-compose down,再去修改harbor.yml文件,重新启动部署 ./install.sh

2、正常启动harbor启动:

docker-compose up -d

3、未修改配置文件,重启Harbor命令:docker-compose start | stop | restart

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐