Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能,具有web管理功能,有了它之后能够很方便的管理容器镜像,搭配Jenkins使用很是方便。

打开网易新闻 查看精彩图片

1.环境准备

1.环境准备

提前准备好docker和docker-compose环境,自行使用脚本安装。下面是我使用的版本:

[root@mx harbor]# docker-compose --versionDocker Compose version v2.0.1[root@mx harbor]# docker --versionDocker version 20.10.9, build c2ea9bc[root@mx harbor]#

2.安装Harbor

2.安装Harbor

我这里使用CentOS 7 操作系统,ip地址可以更换为自己服务器的内网IP

# 配置域名信息echo "192.168.1.1 docker.harbor.com" >> /etc/hosts创建目录 添加密钥(密钥的harbor地址要和hosts地址相同),不使用https可略过下面的步骤mkdir /etc/certs && cd /etc/certsopenssl genrsa -out /etc/certs/ca.key 2048openssl req -x509 -new -nodes -key /etc/certs/ca.key -subj "/CN=docker.harbor.com" -days 5000 -out /etc/certs/ca.crt

mkdir -p /opt/docker/harborwget https://github.com/goharbor/harbor/releases/download/v2.4.0/harbor-offline-installer-v2.4.0.tgztar -xf harbor-offline-installer-v2.4.0.tgz && mv harbor /opt/docker/harbor && cd /opt/docker/harbor

修改配置文件:

cp harbor.yml.tmpl harbor.ymlvim harbor.yml

# 输入服务器的地址hostname: docker.harbor.com# 下面是端口,根据自己的配置http: # port for http, default is 80. If https enabled, this port will redirect to https port port: 8081# 设置好harbor登录的密码,默认账户为adminharbor_admin_password: 123456# 如果需要https(建议启用)请配置好证书文件https: # https port for harbor, default is 443 port: 443 # The path of cert and key files for nginx certificate: /etc/certs/ca.crt private_key: /etc/certs/ca.key

# 准备环境./prepare# 安装./install.sh

3.登录测试

3.登录测试

docker login docker.harbor.com

如果有如下报错,

如果登录提示:Error response from daemon: Get https://docker.harbor.com/v2/: x509: certificate signed by unknown authority则有可能是有残留登录失败数据导致,需要编辑daemon.json ,指定你的登录地址

则执行后,重启docker后就能正常登录了。

vi /etc/docker/daemon.json { "insecure-registries": ["docker.harbor.com"] }

[root@mx harbor]# docker login docker.harbor.comAuthenticating with existing credentials...WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded[root@mx harbor]#

当然最主要的功能还是通过网站访问,使用http://ip:8080 来访问,账号密码为前面设置的,我这里设置为admin/123456,输入后直接登录。

打开网易新闻 查看精彩图片

4.上传一个镜像

4.上传一个镜像

在仓库后台新建一个项目test

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

任意修改一个镜像的tag,上传测试一下。

docker tag mysql:5.7 docker.harbor.com/test/apachedocker push docker.harbor.com/test/apache

如果没有报错,那就正常了,接下来就可以打通网络,在任何地方能连接拉取镜像文件了。