github:
https://github.com/goharbor/harbor
docker-compose安装:
1.下载最新版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.配置可执行权限
sudo chmod +x /usr/local/bin/docker-compose
3.创建软链
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4.检测是否成功安装
docker-compose --version
安装过程:
[root@localhost soft]# sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 633 100 633 0 0 161 0 0:00:03 0:00:03 --:--:-- 161
100 11.6M 100 11.6M 0 0 239k 0 0:00:49 0:00:49 --:--:-- 2036k
[root@localhost soft]#
[root@localhost soft]# sudo chmod +x /usr/local/bin/docker-compose
[root@localhost soft]# sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
[root@localhost soft]# docker-compose --version
docker-compose version 1.28.2, build 67630359
安装Harbor
1.github的releases下载最新安装包
harbor-offline-installer-v2.0.6.tgz
2.解压
tar -zxvf harbor-offline-installer-v2.0.6.tgz
3.配置yml
cd harbor
cp harbor.yml.tmpl harbor.yml
vi harbor.yml
修改配置:
# 内网ip地址
hostname: 192.168.40.129
# http related config
http:
# 修改http端口, 官方生产环境建议使用https
port: 8088
# 注释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_admin_password: Harbor12345
4.执行安装:
./install.sh
安装过程:
[root@localhost harbor]# ./install.sh
[Step 0]: checking if docker is installed ...
Note: docker version: 20.10.3
[Step 1]: checking docker-compose is installed ...
✖ Need to install docker-compose(1.18.0+) by yourself first and run this script again.
[root@localhost harbor]#
[root@localhost harbor]#
[root@localhost harbor]#
[root@localhost harbor]# ./install.sh
[Step 0]: checking if docker is installed ...
Note: docker version: 20.10.3
[Step 1]: checking docker-compose is installed ...
Note: docker-compose version: 1.28.2
[Step 2]: loading Harbor images ...
16c66899afe2: Loading layer [==================================================>] 34.51MB/34.51MB
140ffb3df060: Loading layer [==================================================>] 9.639MB/9.639MB
4b1e11724eb9: Loading layer [==================================================>] 6.318MB/6.318MB
6cbca54d9f4b: Loading layer [==================================================>] 16.04MB/16.04MB
dd58d81ad95a: Loading layer [==================================================>] 28.25MB/28.25MB
afd228b63447: Loading layer [==================================================>] 22.02kB/22.02kB
900592c06d79: Loading layer [==================================================>] 16.04MB/16.04MB
Loaded image: goharbor/notary-server-photon:v2.0.6
7242ca94a1c5: Loading layer [==================================================>] 116.5MB/116.5MB
70b2ef02091f: Loading layer [==================================================>] 12.63MB/12.63MB
56220c5e8642: Loading layer [==================================================>] 3.072kB/3.072kB
9c10fdc202a0: Loading layer [==================================================>] 49.15kB/49.15kB
2e6ba845f20b: Loading layer [==================================================>] 4.096kB/4.096kB
e10c55c004d9: Loading layer [==================================================>] 13.5MB/13.5MB
Loaded image: goharbor/clair-photon:v2.0.6
c048de2e27be: Loading layer [==================================================>] 9.645MB/9.645MB
facd900963ec: Loading layer [==================================================>] 4.096kB/4.096kB
b79026c5bd86: Loading layer [==================================================>] 3.072kB/3.072kB
84857f59f602: Loading layer [==================================================>] 13.28MB/13.28MB
6c8ac72362d1: Loading layer [==================================================>] 14.1MB/14.1MB
Loaded image: goharbor/clair-adapter-photon:v2.0.6
aa31f773c326: Loading layer [==================================================>] 11.49MB/11.49MB
cf10c2945c50: Loading layer [==================================================>] 8.494MB/8.494MB
93908b71a428: Loading layer [==================================================>] 178.7kB/178.7kB
0d73bea5837b: Loading layer [==================================================>] 157.2kB/157.2kB
74a6d0b95d3b: Loading layer [==================================================>] 33.28kB/33.28kB
ff79adc23c6a: Loading layer [==================================================>] 17.41kB/17.41kB
b317e6a84b08: Loading layer [==================================================>] 15.36kB/15.36kB
0de754b914e6: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: goharbor/harbor-portal:v2.0.6
28eecfa451f6: Loading layer [==================================================>] 13.42MB/13.42MB
8470ab3f2651: Loading layer [==================================================>] 3.584kB/3.584kB
b35e9592dfee: Loading layer [==================================================>] 2.56kB/2.56kB
f1b6316833f6: Loading layer [==================================================>] 49.99MB/49.99MB
1905745a13cc: Loading layer [==================================================>] 5.632kB/5.632kB
f161b6a740c5: Loading layer [==================================================>] 54.27kB/54.27kB
1e4a60ef27ff: Loading layer [==================================================>] 50.81MB/50.81MB
a9908fbc2016: Loading layer [==================================================>] 2.56kB/2.56kB
Loaded image: goharbor/harbor-core:v2.0.6
6b0aa29bcac4: Loading layer [==================================================>] 63.62MB/63.62MB
3ce97e069d3c: Loading layer [==================================================>] 79.28MB/79.28MB
eefe2b287e13: Loading layer [==================================================>] 6.144kB/6.144kB
8e713632a10e: Loading layer [==================================================>] 2.56kB/2.56kB
a67aae4afd9c: Loading layer [==================================================>] 2.56kB/2.56kB
7af48c77c810: Loading layer [==================================================>] 2.56kB/2.56kB
1286105fa250: Loading layer [==================================================>] 2.56kB/2.56kB
7bdaad95aa83: Loading layer [==================================================>] 11.26kB/11.26kB
Loaded image: goharbor/harbor-db:v2.0.6
542990a9cd95: Loading layer [==================================================>] 13.42MB/13.42MB
48c661eefcb7: Loading layer [==================================================>] 3.584kB/3.584kB
d03c0da177e7: Loading layer [==================================================>] 2.56kB/2.56kB
710f9a50dfa6: Loading layer [==================================================>] 60.51MB/60.51MB
3f2921344f65: Loading layer [==================================================>] 61.33MB/61.33MB
Loaded image: goharbor/harbor-jobservice:v2.0.6
ac824f681ecb: Loading layer [==================================================>] 40.66MB/40.66MB
6dd89aa571f5: Loading layer [==================================================>] 3.072kB/3.072kB
1ab88978b7d6: Loading layer [==================================================>] 59.9kB/59.9kB
4d65adbf3d7c: Loading layer [==================================================>] 61.95kB/61.95kB
Loaded image: goharbor/redis-photon:v2.0.6
6380379a4dc8: Loading layer [==================================================>] 14.61MB/14.61MB
518f1820e075: Loading layer [==================================================>] 28.25MB/28.25MB
a9d0e3ba0b82: Loading layer [==================================================>] 22.02kB/22.02kB
202e7f272f44: Loading layer [==================================================>] 14.61MB/14.61MB
Loaded image: goharbor/notary-signer-photon:v2.0.6
12234460b034: Loading layer [==================================================>] 75.92MB/75.92MB
84e6e04bc0e0: Loading layer [==================================================>] 3.584kB/3.584kB
5693a3880a52: Loading layer [==================================================>] 3.072kB/3.072kB
518d38be3f6d: Loading layer [==================================================>] 2.56kB/2.56kB
ecec493b1270: Loading layer [==================================================>] 3.072kB/3.072kB
e63cd8780cbc: Loading layer [==================================================>] 3.584kB/3.584kB
3ab835f59a3f: Loading layer [==================================================>] 12.29kB/12.29kB
5b30848e51e0: Loading layer [==================================================>] 3.584kB/3.584kB
Loaded image: goharbor/harbor-log:v2.0.6
e1fc753918d0: Loading layer [==================================================>] 9.645MB/9.645MB
716efc76027e: Loading layer [==================================================>] 4.096kB/4.096kB
c21113e21386: Loading layer [==================================================>] 20.94MB/20.94MB
080e7f017989: Loading layer [==================================================>] 3.072kB/3.072kB
55dea557d4ef: Loading layer [==================================================>] 8.726MB/8.726MB
a64446c5d548: Loading layer [==================================================>] 30.49MB/30.49MB
Loaded image: goharbor/harbor-registryctl:v2.0.6
4a179e84af6f: Loading layer [==================================================>] 10.95MB/10.95MB
0b7414e7b16f: Loading layer [==================================================>] 4.096kB/4.096kB
ad62ef65d04f: Loading layer [==================================================>] 3.072kB/3.072kB
467190d5b504: Loading layer [==================================================>] 23.44MB/23.44MB
66d855ab3844: Loading layer [==================================================>] 13.25MB/13.25MB
3fefdaf8c5bf: Loading layer [==================================================>] 37.51MB/37.51MB
Loaded image: goharbor/trivy-adapter-photon:v2.0.6
a58d08c989ed: Loading layer [==================================================>] 9.644MB/9.644MB
68151298ffb2: Loading layer [==================================================>] 67.49MB/67.49MB
27df8635f227: Loading layer [==================================================>] 3.072kB/3.072kB
f47ddcf87e35: Loading layer [==================================================>] 4.096kB/4.096kB
e6ba620f60b8: Loading layer [==================================================>] 68.31MB/68.31MB
Loaded image: goharbor/chartmuseum-photon:v2.0.6
527eaa1c3534: Loading layer [==================================================>] 77.32MB/77.32MB
631d903c980c: Loading layer [==================================================>] 51.58MB/51.58MB
77ad9a89f0f9: Loading layer [==================================================>] 2.56kB/2.56kB
ab797dc18e3d: Loading layer [==================================================>] 1.536kB/1.536kB
047e09499da9: Loading layer [==================================================>] 18.43kB/18.43kB
1e239f0076e3: Loading layer [==================================================>] 4.055MB/4.055MB
c941cbaba1ae: Loading layer [==================================================>] 233.5kB/233.5kB
Loaded image: goharbor/prepare:v2.0.6
32157259d7b9: Loading layer [==================================================>] 11.49MB/11.49MB
Loaded image: goharbor/nginx-photon:v2.0.6
57d114d5785d: Loading layer [==================================================>] 9.645MB/9.645MB
690299ab67a4: Loading layer [==================================================>] 4.096kB/4.096kB
cc159c85e0e1: Loading layer [==================================================>] 3.072kB/3.072kB
47d60237e55f: Loading layer [==================================================>] 20.94MB/20.94MB
5902fa0ab0c1: Loading layer [==================================================>] 21.77MB/21.77MB
Loaded image: goharbor/registry-photon:v2.0.6
[Step 3]: preparing environment ...
[Step 4]: preparing harbor configs ...
prepare base dir is set to /home/soft/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/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 ...
Building with native build. Learn about native build in Compose here: https://docs.docker.com/go/compose-native-build/
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating redis ... done
Creating registry ... done
Creating harbor-db ... done
Creating harbor-portal ... done
Creating registryctl ... done
Creating harbor-core ... done
Creating harbor-jobservice ... done
Creating nginx ... done
✔ ----Harbor has been installed and started successfully.----
[root@localhost harbor]#
查看docker实例
[root@localhost harbor]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0dfb661f4358 goharbor/harbor-jobservice:v2.0.6 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-jobservice
28fe6ea9b7a8 goharbor/nginx-photon:v2.0.6 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) 0.0.0.0:8088->8080/tcp nginx
fcff7ccd81cc goharbor/harbor-core:v2.0.6 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-core
e534dffb8d9d goharbor/harbor-registryctl:v2.0.6 "/home/harbor/start.…" About a minute ago Up About a minute (healthy) registryctl
6a8f343a6ea9 goharbor/redis-photon:v2.0.6 "redis-server /etc/r…" About a minute ago Up About a minute (healthy) 6379/tcp redis
e6907c0f778b goharbor/registry-photon:v2.0.6 "/home/harbor/entryp…" About a minute ago Up About a minute (healthy) 5000/tcp registry
d8da1747dee1 goharbor/harbor-portal:v2.0.6 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) 8080/tcp harbor-portal
2c4e0ce2b7e4 goharbor/harbor-db:v2.0.6 "/docker-entrypoint.…" About a minute ago Up About a minute (healthy) 5432/tcp harbor-db
4481d6b24e92 goharbor/harbor-log:v2.0.6 "/bin/sh -c /usr/loc…" About a minute ago Up About a minute (healthy) 127.0.0.1:1514->10514/tcp harbor-log
访问 http://192.168.40.129:8088/
上传本地docker镜像到harbor
1.创建项目
2.docker登陆harbor
docker login ip:port
登录Harbor仓库报错处理:
docker login登录Harbor仓库报错
1.查看状态
systemctl status docker
2.修改里面的这个文件
vi /usr/lib/systemd/system/docker.service
# 加这个参数 --insecure-registry 192.168.40.129:8088
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.40.129:8088
3.生效修改配置
systemctl daemon-reload
4.停止harbor
docker-compose stop
5.重启docker
systemctl restart docker
6.可能处理harbor启动失败的情况,请使用docker-compose操作重启harbor
停止harbor
docker-compose stop
启动
docker-compose up -d
尝试登陆
docker login -uadmin -pHarbor12345 192.168.40.129:8088
登陆ok
3.docker镜像打标
docker tag act-demo:1.0.0 192.168.40.129/myharbor/act-demo:1.0.1
3.将本地镜像push到harbor
hello-world测试
1.打标 docker tag {镜像名}:{tag} {Harbor地址}:{端口}/{Harbor项目名}/{自定义镜像名}:{自定义tag}
docker tag hello-world 192.168.40.129:8088/myharbor/hello-world:1.0.0
2.push到harbor
docker push 192.168.40.129:8088/myharbor/hello-world:1.0.0
act-demo测试
1.打标 docker tag {镜像名}:{tag} {Harbor地址}:{端口}/{Harbor项目名}/{自定义镜像名}:{自定义tag}
docker tag act-demo:1.0.0 192.168.40.129:8088/myharbor/act-demo:1.0.1
2.push到harbor
docker push 192.168.40.129:8088/myharbor/act-demo:1.0.1
4.pull私有库harbor镜像到本地
# 另外一台机子docker上执行
docker pull 192.168.40.129:8088/myharbor/act-demo:1.0.1
测试一下
docker run --add-host=mysqldb:192.168.1.102 --privileged -d -p 8080:8888 -v /home/oa/files:/qmy/oa/files -v /home/oa/logs:/logs -e JAVA_OPTS='-Xms256m -Xmx256m -XX:+HeapDumpOnOutOfMemoryError' --name act-demo-ltx-harbor 192.168.40.129:8088/myharbor/act-demo:1.0.1
[root@localhost harbor]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23831fb8ac01 192.168.40.129:8088/myharbor/act-demo:1.0.1 "nohup java -Djava.s…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8888/tcp act-demo-ltx-harbor
ok,写完收工!