系统版本: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

GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb pull image from registry.goharbor.io instead of dockerhub Update testcase to support Docker Image Can Be Pulled With Credential Change gitlab project name when user changed. Update permissions count and permission count total Change webhook_endpoint_ui Signed-off-by: stonezdj <stone.zhang@broadcom.com> Co-authored-by: Wang Yan <wangyan@vmware.com> 5 天前
3dbfd422 Signed-off-by: wang yan <wangyan@vmware.com> 5 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐