继:Jenkins+Docker+Gitlab+Kubernetes 完成容器化微服务自动化部署harbor企业级Registry仓库与Kubernetes服务编排(下一章节)
本章先搭建harbor企业级Registry仓库环境
harbor是VMware公司开源的企业级的Docker Registry管理项目。
根据Harbor官方描述:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
一、harbor的配置安装
1、下载harbor
harbor下载地址:https://github.com/vmware/harbor
2、配置修改docker-compose.yml和harbor.cfg两个文件
在公网上,一般情况下都不暴露默认端口,避免被攻击!
以下修改harbor的默认80端口为其他端口!
这里示例修改为8015端口
解压
tar -xvf harbor-offline-installer-v1.7.5.tgz
解压之后有 harbor 文件夹,进入harbor
cd harbor
进入harbor.cfg修改hostname
vi harbor.cfg
注意: 这里可以写 IP地址,也可以写域名,写域名需确保 DNS 可以解析
#vim docker-compose.yml ## Configuration file of Harbor#The IP address or hostname to access admin UI and registry service.#DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.hostname = 自定义域名或IP:8015#The protocol for accessing the UI and token/notification service, by default it is http.
修改docker-compose.yml文件映射为8015端口:
vi docker-compose.yml
#vim docker-compose.yml proxy: image: nginx:1.11.5 container_name: nginx restart: always volumes: - ./common/config/nginx:/etc/nginx ports: - 8015:80 - 1143:443 depends_on: - mysql - registry - ui - log
修改完成之后,使用官方自带脚本更新参数,在harbor目录中执行./prepare
执行安装脚本:在harbor目录中执行 ./install.sh
执行最后出现 “Harbor has been installed and started successfully”表示安装成功。
到此便安装完成了,直接打开浏览器访问地址:harbor.cfg修改的hostname 登陆即可:
默认用户密码是:admin/Harbor12345
harbor容器的stop与start:
# 停止
docker-compose down -v
# 启动
docker-compose up -d
二、使用私有仓库push和pull镜像(上传,拉取镜像)
1、docker默认是从官方拉取镜像的,并且从1.12版本之后,默认私有仓库是使用https来进行连接,所以我们这里需要进行一些相应的修改:
在docker主机修改docker启动文件,在启动命令后加入参数:--insecure-registry ip:端口号
vi /etc/docker/daemon.json
json格式如:
{
"insecure-registries": ["配置的IP:8015"]
}
修改完成后重启docker执行命令:
systemctl daemon-reload
systemctl restart docker.service
测试验证执行命令:
docker login -u admin -p Harbor12345 配置的IP:8015
如果出现“ Login Succeeded”提示 表示正确的添加信任关系包括端口号。
2、使用docker命令对镜像打标签并且上传至私有仓库
docker tag java:8 配置的IP:8015/cloud-service-test/java:8
docker push 配置的IP:8015/cloud-service-test/java:8
如下图提示表示成功上传到企业私有镜像仓库:
进入私有镜像仓库管理中心界面查看