Harbor 是 VMware 公司开源的企业级 DockerRegistry 项目,项目地址点击这里,它的目标是帮助用户迅速搭建一个企业级的 Docker registry 服务。它以 Docker 公司开源的 registry 为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。Harbor 的每一个组件都是以 Docker 容器的形式构建的,使用 Docker Compose 来对它进行部署。html
一、阿里云学生机(1核2G Centos7以上)
二、docker 版本:18 (最新也成)
三、docker-compose:1.24 (最新也成)
四、Harbor:1.1.2mysql
docker的安装看这里
docker-compose安装看这里
另外的提醒,docker必定要换镜像源,示例看这里linux
推荐我这种方式下载Harbor的离线安装包
nginx
wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz
以上方式取决与你的服务器网速和宽带了,因此连接放入迅雷,速度贼快,而后再把用xftp把安装包放入服务器
tar -zxvf harbor-offline-installer-v1.1.2.tgz -C 你想解压到的路径
复制代码
解压以后会在解压的路径中看到harbor.cfg文件,主要是修改主机IPgit
# 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:端口
值得一提的是,若是你这里不带端口,尽可能这里不要使用5000端口,Harbor会默认80端口的
复制代码
若是你在harbor.cfg文件中将你的IP后面加上端口的话,也要修改docker-compose.yml,没有加上的话不用修改github
proxy:
image: vmware/nginx:1.11.5-patched
container_name: nginx
restart: always
volumes:
- ./common/config/nginx:/etc/nginx:z
networks:
- harbor
ports:
- 端口:80 主要是这里的宿主机端口修改
- 443:443
- 4443:4443
depends_on:
- mysql
- registry
- ui
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "proxy"
复制代码
这里若是你想修改仓库存储镜像的路径话,请修改如下地方sql
registry:
image: vmware/registry:2.6.1-photon
container_name: registry
restart: always
volumes:
- /data/registry:/storage:z 修改宿主机的路径成你想要的路径就好
- ./common/config/registry/:/etc/registry/:z
networks:
- harbor
environment:
- GODEBUG=netdns=cgo
command:
["serve", "/etc/registry/config.yml"]
depends_on:
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "registry"
复制代码
运行安装脚本
docker
sh install.sh
复制代码
一旦出现如下语句就是安装成功了json
----Harbor has been installed and started successfully.----
Now you should be able to visit the admin portal at http://你的IP:端口.
For more details, please visit https://github.com/vmware/harbor .
复制代码
以后你就能够访问http://你的IP:端口,这里默认的管理员帐号是admin/Harbor12345,建议使用管理帐号登陆以后在UI界面里修改以防不测centos
若是你使用docker login 你的IP:端口 出现如下状况
[root@xxx harbor]# docker login xxxx:端口
Username: admin
Password:
Error response from daemon: Get https://xxxx:端口/v2/: http: server gave HTTP response to HTTPS client
复制代码
这种状况是由于这是由于docker默认不容许非HTTPS方式推送镜像. 咱们能够经过docker配置来取消这个限制, 或者配置可以经过 HTTPS 访问的私有仓库。
若是你的linux是Ubuntu16.04+、Debian 8+、centos 7+,请在/etc/docker/daemon.json中追加如下内容:
{
"insecure-registries": ["xxxx:端口"]
}
复制代码
而后再从新加载docker
systemctl reload docker
复制代码
正确的docker pull/push应该按照如下例子来
docker login 你的IP:端口
输入帐号密码
docekr tag 镜像名称:标签 你的IP:端口/项目名称/镜像名称:标签
docker push 你的IP:端口/项目名称/镜像名称:标签
复制代码
解释一下,harbor里有个默认公开的项目library,这个是不用登录就能够随意push/pull的,因此通常来讲咱们会新建一个私有项目,不登陆没法push/pull
删除Harbor保留数据
docker-compose down -v
复制代码
删除数据(对应docker-compose.yml里面的数据卷)
前提是你没有改变docker-compose.yml里面的数据卷
rm -r /data/*
复制代码