harbor镜像仓库安装
2023年9月24日大约 3 分钟
harbor镜像仓库
- 环境里要有docker
- 环境里要哟docker compose
下载安装
# 1.到官方仓库下载安装包
# 2.将离线包传到服务器
tar -xvf harbor-online-installer-v2.9.0.tgz
# 3.创建安装目录
mkdir /opt/harbor
mv harbor/* /opt/harbor
cd /opt/harbor
# 4.修改地址和端口
vi harbor.yml
```
hostname: 192.168.0.11 # 修改为harbor的ip
# http related config
http:
# port for http, default is 80. If https enabled, this port will redirect to https port
port: 85 # 设置端口
```
# 5.安装环境检测
./prepare
# 6. 安装
./install.sh
# 7. 查看安装后的容器
./preparedocker-compose ps
docker compose ps # 应该是有9个容器
# 8. 登录
docker login -u admin -p Harbor12345 192.168.138.130:85
```
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://192.168.0.11:85/v2/": dial tcp 192.168.0.11:85: connect: connection refused
# 这个提示是说docker 登录默认为https连接,这里由于没有使用https,所以连接被拒绝,解决方法看下面
```
# 9. 解决docker登录harbor连接问题
vim /usr/lib/systemd/system/docker.service
```
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=192.168.0.11:85
# 添加--insecure-registry参数,值为harborIp:Port
```
# 10.重启docker
systemctl restart docker
#然后重新构建
# 11.重新构建harbor
cd /opt/harbor/
./install.sh
# 12.重新登录
docker login -u admin -p Harbor12345 192.168.0.11:85
```
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
```
13. 在浏览器输入ip:port登录
14. 用户:admin 密码:Harbor
创建用户
image-20230924143814896 image-20230924145132825 image-20230924145210608 image-20230924145205918
创建项目
image-20230924145601168 image-20230924145634654
给项目分配用户
image-20230924145737841 image-20230924145801046 image-20230924145821724
上传测试
登录harbor服务器
# 拉取一个nginx镜像 docker pull nginx # 打标签 docker image tag nginx 192.168.0.11:85/jenkins/nginx:v0 # 上传 docker push 192.168.0.11:85/jenkins/nginx:v0
The push refers to repository [192.168.0.11:85/jenkins/nginx]
d874fd2bc83b: Pushed
32ce5f6a5106: Pushed
f1db227348d0: Pushed
b8d6e692a25e: Pushed
e379e8aedd4d: Pushed
2edcec3590a4: Pushed
v0: digest: sha256:ee89b00528ff4f02f2405e4ee221743ebc3f8e8dd0bfd5c4c20a2fa2aaa7ede3 size: 1570到Harbor仓库查看
image-20230924161037173
Harbor重启
# docker-compose down
# vim harbor.yml
# ./prepare
# docker-compose up -d
Harbor重置密码
harbor现使用postgresql 数据库。不再支持mysql
注:
卸载重新重新安装也不可以,原因是没有删除harbor的数据,harbor数据在/data/目录下边,如果真要重新安装需要将这个也删除,备份或者迁移,请使用这个目录的数据。
harbor版本为:1.8.0
官方的安装包为: harbor-offline-installer-v1.8.0.tgz
具体步骤:
1、进入[harbor-db]容器内部
# docker exec -it harbor-db /bin/bash
2、进入postgresql命令行,
psql -h postgresql -d postgres -U postgres #这要输入默认密码:root123 。
psql -U postgres -d postgres -h 127.0.0.1 -p 5432 #或者用这个可以不输入密码。
3、切换到harbor所在的数据库
# \c registry
4、查看harbor_user表
# select * from harbor_user;
5、例如修改admin的密码,修改为初始化密码Harbor12345 ,修改好了之后再可以从web ui上再改一次。
# update harbor_user set password='a71a7d0df981a61cbb53a97ed8d78f3e', salt='ah3fdh5b7yxepalg9z45bu8zb36sszmr' where username='admin';
6、退出 \q 退出postgresql,exit退出容器。
# \q
# exit
完成后通过WEB UI,就可以使用admin 、Harbor12345 这个密码登录了,记得修改这个默认密码哦,避免安全问题。
有更加狠点的招数,将admin账户改成别的名字,减少被攻击面:
# update harbor_user set username='wing' where user_id=1; #更改admin用户名为wing