使用docker搭建“企业级镜像仓库”Harbor

时间:2024-12-07 19:33:56

一、前沿

docker的官方镜像仓库registry,功能比较单一,不太好用,特别是删除镜像操作,不够友好。

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,

例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,

Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。

Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,

确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

安装环境:

 Linux UbuntuServer 4.4.--generic #-Ubuntu SMP Mon Dec  :: UTC  x86_64 x86_64 x86_64 GNU/Linux
Docker version 17.09.-ce, build 19e2cf6
docker-compose version 1.17., build 6d101fb

二、安装docker(略)

三、安装docker-compose(略)

四、安装Harbor

下载Harbor

wget http://harbor.orientsoft.cn/harbor-v1.3.0/harbor-offline-installer-v1.3.0.tgz

解压

tar -xzvf harbor-offline-installer-v1.3.0.tgz

得到安装配置文件

使用docker搭建“企业级镜像仓库”Harbor

这里使用HTTP Insecure Registry。

打开harbor.cfg,修改hostname = 本机ip:端口,默认是80端口,如果80被占用,则需要换端口,比如hostname = 10.0.3.16:7077,

同时打开docker-compose.yml,修改ngxin的转发端口,比如:

proxy:
image: vmware/nginx-photon:1.11.
container_name: nginx
restart: always
volumes:
- ./common/config/nginx:/etc/nginx:z
networks:
- harbor
ports:
- :
- :
- :
depends_on:
- mysql
- registry
- ui
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "proxy"

然后保存,启动Harbor:

./install.sh

查看各容器状态:

docker-compose ps

使用docker搭建“企业级镜像仓库”Harbor

确保各容器状态都在“up”,即可访问管理界面http://10.0.3.16:7077

各容器的日志记录在:/var/log/harbor/

使用docker搭建“企业级镜像仓库”Harbor

用户名admin,密码:Harbor12345,配置文件harbor.cfg里有。

五、尝试上传和拉取镜像

登陆Harbor之后,创建一个项目,并选择“公开”:

使用docker搭建“企业级镜像仓库”Harbor

可以看到此时项目里没有镜像:

使用docker搭建“企业级镜像仓库”Harbor

现在上传一个镜像,上传之前由于Harbor使用的HTTP Insecure Registry模式,所以需要设置docker允许使用Insecure Registry。

vim /etc/docker/daemon.json

写入insecure-registries

{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": [
"10.0.3.16:7077"
] }

重启docker:

 systemctl daemon-reload
systemctl restart docker

上传一个修改过的busybox:

 docker pull busybox
docker tag busybox 10.0.3.16:/myregistry/busybox:v1.
docker login 10.0.3.16: # 用户名:admin,密码:Harbor12345
docker push 10.0.3.16:/myregistry/busybox:v1.

可以看到Harbor仓库里面已经有了:

使用docker搭建“企业级镜像仓库”Harbor

换一台机器,尝试拉取:

docker pull 10.0.3.16:/myregistry/busybox:v1.

也是可以的。

六、参考:

https://blog.****.net/nklinsirui/article/details/87924176

Harbor各版本:http://harbor.orientsoft.cn/