官方文档:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
1 环境依赖:docker docker-compose
1.1 下载docker:
Ubuntu16 可参考 https://blog.csdn.net/jinking01/article/details/82490688
其它系统可参考:http://www.runoob.com/docker/ubuntu-docker-install.html
我的服务器是在阿里云上,直接运行:
apt-get install docker.io
注:
检测安装结果:docker -v
1.2 下载docker-compose
阿里云上:apt-get install docker-compose
官网教程参考:https://docs.docker.com/compose/install/#install-compose
1.2.1 官网解决方案一(Linux):(问题:我遇到问题就是下载速度太慢)
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
1.2.2 官网解决方案二:用python的pip工具
pip install docker-compose
注:
检测安装情况:
docker-compose --version
1.3 下载Harbor
官网地址:https://github.com/goharbor/harbor/releases
1.3.1 复制地址,运行wget url:
wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.1.tgz
注:下载速度太慢,可以windows上下载下来然后copy到服务器上
1.3.2 解压:
tar -xvf harbor-online-installer-v1.7.1.tgz
2 配置harbor
2.1 修改harbor.cfg
cd harbor
vim harbor.cfg
将 hostname的值修改成本机IP,比如198.127.0.1
部分配置含义:
#配置访问的地址
hostname = 198.127.0.1
#使用http方式访问管理界面
ui_url_protocol = http
#配置admin的密码,默认是Harbor12345
harbor_admin_password = 12345
#更改harbor存储路径,默认是/data
secretkey_path = /mnt/vdc/harbor_data
2.2 开始安装:
./install.sh
2.3 如果主机上已经有nginx监听80 端口,那需要修改harbor里的nginx的默认端口配置:
第一种:
2.3.1 修改docker-compose.yml
vim docker-compose.yml
例如 修改80:80 为 81:80
2.3.2修改config.xml,在$public_url(也有可能是$ui_url)后增加 :81
vim common/templates/registry/config.yml
2.3.3重新生成配置文件
sudo ./prepare
第二种:
参考官方文档:
2.4 启动Harbor:
docker-compose up -d
2.4.1 进入Harbor的UI界面
(端口默认是80,nginx如果修改了端口映射(比如上面的81:80),那端口就是81):IP:Port
Eg: 198.127.0.1:81
Harbor默认用户名:admin
Harbor默认密码:Harbor12345
2.4.2 新建Project:tom
注:
停止Harbor:docker-compose down -v
3 修改insecure-registry
3.1 windows/mac版本Docker
3.1.1右击docker图标,在settings里的Deamon的Insecure registries里增加Harbor的IP和端口
198.127.0.1:81
3.1.2 重启Docker
service docker restart
3.2 Linux,比如Ubuntu
有好几种方式,主要分为 修改daemon.json增加仓库地址(推荐) 和 在docker启动文件配置仓库地址
3.2.1 和 3.2.2 二选一(推荐3.2.1,方便)
3.2.1 修改daemon.json
文件目录:/etc/docker/daemon.json (没有则新建该文件)
{
"insecure-registries": ["198.127.0.1:81"]
}
然后重启docker:
service docker restart
3.2.2 修改启动文件
3.2.2.1找到service的位置
service docker status
3.2.2.2 修改docker.service,增加Harbor的Ip和Port
vim /lib/systemd/system/docker.service
在ExecStart的最后增加:--insecure-registry=198.127.0.1:81
3.2.2.3 重新启动docker:
修改docker.service一定要执行systemctl daemon-reload刷新配置
systemctl daemon-reload
systemctl restart docker
4 docker push镜像:
4.1 登录Harbor
docker login 198.127.0.1:81
输入
用户名admin
密码Harbor12345
4.2 docker tag 和 docker push:
docker tag blog:v2.0 192.127.0.1:81/tom/blog:v2.0
docker push 192.127.0.1:81/tom/blog:v2.0
push常见错误:
(1)Error response from daemon: Get https://192.127.0.1/v1/users/: dial tcp 192.127.0.1:443: getsockopt: connection refused
(2)Error response from daemon: Get https://192.127.0.1:81/v1/users/: http: server gave HTTP response to HTTPS client
原因:
1 端口错了,比如不是默认端口80,而是81
2 没有在docker启动文件中添加--insecure-registry 信任关系,解决办法在上面 3 修改insecure-registry