harbor介绍
Docker容器应用的开发和运行离不开可靠的镜像管理,Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
官网地址:https://github.com/goharbor/harbor
harbor ['hɑ:bə] 海湾
注:安装harbor,系统根分区的可用空间需要大于6G,否则安装时会报空间不足。内存2G以上
1. 安装docker服务
#关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
#安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker && systemctl enable docker
安装docker-compose
在线安装:
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
2. 安装Harbor私有仓库
wget http://harbor.orientsoft.cn/harbor-v1.5.0/harbor-offline-installer-v1.5.0.tgz
tar zxvf harbor-offline-installer-v1.5.0.tgz -C /opt
vim /opt/harbor/harbor.cfg #查看配置文件中的基本信息
# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
改: 7 hostname = reg.mydomain.com
为: 7 hostname = 192.168.1.63
# 启动Harbor后,管理员UI登录的密码,默认是Harbor12345,改为123456
改:68 harbor_admin_password = Harbor12345
为:68 harbor_admin_password = 123456
以下3处,默认就可以了
# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
11 ui_url_protocol = http
27 secretkey_path = /data # 这是密钥存储路径,需要稍后手动创建这个目录
# mysql数据库root用户默认密码root123,实际使用时修改下
133 db_password = root123
建存储数据的目录:
mkdir /data
注:后期的私有库中的镜像存放路径是:/data/registry/
3. 部署启动 Harbor
cd /opt/harbor
./prepare #初始化安装环境
注:配置文件已准备好,请使用Docker Compose启动服务。
安装harbor
[root@xuegod63 harbor]# ./install.sh #执行./install.sh,Harbor服务就会根据当期目录下的/opt/harbor/docker-compose.yml 开始下载依赖的镜像,检测并按照顺序依次启动各个服务。最终弹出以下画面,说明安装成功了。
查看Harbor依赖的镜像及启动服务如下:
查看镜像:
4. 使用harbor管理镜像
登录 http://$(你的ip) 用户:admin 密码:123456
修改本地docker服务使用http协议和私有仓库通信
在daemon.json中添加以下参数
vim /etc/docker/daemon.json #创建此文件,并写入以下内容
{
"insecure-registries": [ "192.168.59.131" ]
}
或者
cat >>/etc/docker/daemon.json<<EOF
{
"insecure-registries": [ "$(hostname -I|awk '{print $1}')" ]
}
EOF
如图:
注:出现这问题的原因是:Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以需要加上这一行。 不然docker没有办法往私有仓库中上传镜像。
重启docker服务:
systemctl daemon-reload && systemctl restart docker
7. 将harbor启动
之前重启docker服务时,把harhor服务也关了,所以需要再启动一下harbor。
你可以使用docker-compose来启动或关闭Harbor服务。但必须在与docker-compose.yml相同的目录中运行。 compose [kəmˈpəʊz] 组成
cd /opt/harbor/
docker-compose down # 停止harbor
docker-compose up -d #后台启动
登录私有仓库:
docker login 192.168.59.131
如果登陆失败
解决如下
vim /usr/lib/systemd/system/docker.service
上传镜像到私有仓库中:
在项目中标记镜像:
docker tag SOURCE_IMAGE[:TAG] 192.168.59.131/web/IMAGE[:TAG]
推送镜像到当前项目:
docker push 192.168.59.131/web/IMAGE[:TAG]
案例
docker tag mysql:latest 192.168.59.131/web/mysql:latest
docker push 192.168.59.131/web/mysql:latest