Harbor
Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能,具有web管理功能,有了它之后能够很方便的管理容器镜像,搭配Jenkins使用很是方便。
1.环境准备
提前准备好docker和docker-compose环境,自行使用脚本安装。下面是我使用的版本:
[root@mx harbor]# docker-compose --version
Docker Compose version v2.0.1
[root@mx harbor]# docker --version
Docker version 20.10.9, build c2ea9bc
[root@mx 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/certs
openssl genrsa -out /etc/certs/ca.key 2048
openssl 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/harbor
wget https://github.com/goharbor/harbor/releases/download/v2.4.0/harbor-offline-installer-v2.4.0.tgz
tar -xf harbor-offline-installer-v2.4.0.tgz && mv harbor /opt/docker/harbor && cd /opt/docker/harbor
修改配置文件:
cp harbor.yml.tmpl harbor.yml
vim 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登录的密码,默认账户为admin
harbor_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.登录测试
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.com
Authenticating with existing credentials...
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
[root@mx harbor]#
当然最主要的功能还是通过网站访问,使用http://ip:8080 来访问,账号密码为前面设置的,我这里设置为admin/123456,输入后直接登录。
4.上传一个镜像
在仓库后台新建一个项目test
任意修改一个镜像的tag,上传测试一下。
docker tag mysql:5.7 docker.harbor.com/test/apache
docker push docker.harbor.com/test/apache
如果没有报错,那就正常了,接下来就可以打通网络,在任何地方能连接拉取镜像文件了。