欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

10分钟搞定 harbor

程序员文章站 2022-07-12 20:09:01
...

1、安装docker及docker-compose

注:高版本(14以上)docker执行login命令,默认使用https,且harbor必须使用域名,只是用ip访问是不行的。

Centos下:(docker安装部分参考自:http://www.runoob.com/docker/centos-docker-install.html

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-test
安装最新版的 yum install docker-ce      
安装指定版本 yum list docker-ce --showduplicates | sort -r
systemctl start docker 启动docker
sudo yum -y install epel-release

yum install python-pip

pip install docker-compose

ubuntu下:(参考自:http://www.runoob.com/docker/ubuntu-docker-install.html

 

1、获取最新版本的 Docker 安装包

wget -qO- https://get.docker.com/ | sh 

2、启动docker 后台服务

sudo service docker start

3、测试运行hello-world

docker run hello-world

4.镜像加速

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://4e70ba5d.m.daocloud.io

5.重启docker

sudo service docker restart

2、安装Harbor、配置、启动

1、按需下载Harbor压缩包  地址:http://harbor.orientsoft.cn/

放到服务器上执行:

tar xvf harbor-offline-installer-v1.5.0.tgz

目录结构如下:

10分钟搞定 harbor

2、进入到harbor目录下,修改harbor.cfg文件:

vim harbor.cfg

10分钟搞定 harbor

修改(下文都是以domain.cn为域名为例):

hostname:你的域名,domain.cn

ssl_cert:证书完整路径,/data/cert/domain.cn.crt

ssl_cert_key:证书完整路径,/data/cert/domain.cn.key

 

3、生成证书相关:

cd /data/cert

openssl req -nodes -subj "/C=CN/ST=Beijing/L=Beijing/CN=domain.cn" -newkey rsa:2048 -keyout domain.cn.key -out domain.cn.csr

openssl x509 -req -days 3650 -in domain.cn.csr -signkey domain.cn.key -out domain.cn.crt

openssl x509 -req -in domain.cn.csr -CA domain.cn.crt -CAkey domain.cn.key -CAcreateserial -out domain.cn.crt -days 3650

4、进入到harbor目录:

./prepare
./install.sh

install执行完成后控制台会输出可访问路径,就是harbor.cfg配置的hostname。

由于harbor是用docker-compose管理,因此如果要 启动、重启、关闭,只需进入到harbor目录执行:

docker-compose up 启动
docker-compose restart  重启
docker-compose stop 关闭

 

3、Windows访问

在Windows机器*问域名不能成功,因为域名是自定义的,不是公网域名,因此需要在C:\Windows\System32\drivers\etc\hosts中配置:

	192.168.x.x  domain.cn

配置完成后即可访问。

默认用户名:admin

默认密码:Harbor12345

可以在harbor.cfg中修改。

 

4、Linux 中 docker  login、push、pull

执行:

docker login domain.cn

输入用户名、密码,后报错,“无法找到主机”,报错原因和Windows访问一样,域名不是公网域名,需要配置hosts

vim /etc/hosts

添加和Windows一样的配置。

再执行docker login,发现报错,“证书不受信任”。

CentOs下:

yum install ca-certificates

update-ca-trust enable

cp domain.cn.crt /etc/pki/ca-trust/source/anchors/

update-ca-trust extract 

Ubuntu下:

cp domain.cn.crt /usr/share/ca-certificates

update-ca-certificates

再执行:

docker login domain.cn

docker tag tomcat:latest domain.cn/library/tomcat:v1

docker push domain.cn/library/tomcat:v1

即可成功。

如果还报证书不受信,重启机器即可。

如果机器不允许重启:

sudo dpkg-reconfigure ca-certificates

10分钟搞定 harbor

选择yes,回车

10分钟搞定 harbor

找到上传到/usr/share/ca-certificates/下的证书,光标指向该证书,前面的[ ]中应该没有*号,敲空格键,会变成[*],最后敲Tab键,光标会落到<Ok>上,回车

控制台输出:

10分钟搞定 harbor

最后更新证书并重启docker服务:

update-ca-certificates

systemctl restart docker

注意: 如果是k8s部署过程中的node加入master,需要docker login一下,否则k8s脚本不能正常拉取镜像。

5、dockerRegistry下的镜像的删除

 

本地镜像如何删除,正常是不提供删除功能的,所以使用第三方的插件来进行删除
1、下载第三方插件

curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/null

chmod a+x /usr/local/bin/delete_docker_registry_image

2、 全局变量(地址是docker registry所挂载的目录)

export REGISTRY_DATA_DIR=/home/docker/registry/docker/registry/v2

3、 执行删除指令

delete_docker_registry_image --image image:version

6、命令行查看harbor仓库中有哪些镜像

harbor在1.5.0版本之后,页面提供的删除功能经测试已经可用,但是还是担心是否真的删除了,会不会只是页面不予显示。

1、获取返回的token:

curl -k -i -u admin:admin https://registry.local/service/token\?account\=admin\&service\=harbor-registry\&scope\=registry:catalog:\*

2、使用token查询仓库内容,把返回的token替换tokenHere即可:

curl -k -H "authorization: bearer tokenHere" https://registry.local/v2/_catalog

7、Harbor镜像挂载目录

由于harbor是由docker-compose管理,因此,进入到harbor目录下,查看docker-compose.yml

vim docker-compose.yml

10分钟搞定 harbor

每个服务节点都对应一组配置,找到registry节点的volume,可以看到物理机上的 /data/registry目录是镜像挂载路径。

8、修改挂载目录

vim harbor.cfg

找到secretkey_path(默认值是 /data),修改为目标地址

vim docker-compose.yml

找到所有/data的目录,都统一修改为目标地址(和上一步保持一致)

./prepare

docker-compose up -d