使用 harbor 搭建Docker私有仓库

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私有仓库

下载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

配置Harbor

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   #初始化安装环境

使用 harbor 搭建Docker私有仓库

注:配置文件已准备好,请使用Docker Compose启动服务。

使用 harbor 搭建Docker私有仓库

安装harbor

[root@xuegod63 harbor]# ./install.sh  #执行./install.sh,Harbor服务就会根据当期目录下的/opt/harbor/docker-compose.yml 开始下载依赖的镜像,检测并按照顺序依次启动各个服务。最终弹出以下画面,说明安装成功了。

使用 harbor 搭建Docker私有仓库

 使用 harbor 搭建Docker私有仓库

查看Harbor依赖的镜像及启动服务如下:

查看镜像:使用 harbor 搭建Docker私有仓库

4. 使用harbor管理镜像

登录  http://$(你的ip)  用户:admin  密码:123456

使用 harbor 搭建Docker私有仓库

使用 harbor 搭建Docker私有仓库

 修改本地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

如图:

 使用 harbor 搭建Docker私有仓库

注:出现这问题的原因是: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/

使用 harbor 搭建Docker私有仓库

 docker-compose down # 停止harbor

 docker-compose up -d #后台启动

使用 harbor 搭建Docker私有仓库

登录私有仓库:

docker login 192.168.59.131

 使用 harbor 搭建Docker私有仓库

 如果登陆失败

使用 harbor 搭建Docker私有仓库

解决如下

vim /usr/lib/systemd/system/docker.service

 使用 harbor 搭建Docker私有仓库

 上传镜像到私有仓库中:

使用 harbor 搭建Docker私有仓库

  在项目中标记镜像:

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
使用 harbor 搭建Docker私有仓库

使用 harbor 搭建Docker私有仓库

上一篇:linux部署harbor和基本使用


下一篇:关于eclipse中MAVEN WEB工程中编译问题