Docker 搭建 Harbor 仓库

搭建 harbor 仓库

docker 官方提供的私有仓库 registry,用起来虽然简单 ,但在管理的功能上存在不足。Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。接下来,咱们安装harbor

 

安装docker-compose

若不事先安装 docker-compose ,后续使用会提示,要自行安装。步骤如下,请逐步执行。

1、 配置阿里的epel源

# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2、 安装Python-pip

# yum install python-pip -y

3、 升级Python-ppip

# pip install --upgrade pip

4、 安装docker-compose

# pip install docker-compose

5、查看docker-compose版本

# docker-compose -v

 

下载安装Harbor

下载

github地址:https://github.com/goharbor/harbor/release

当前下载 harbor-offline-installer-v2.1.2.tgz 版本

解压

tar -xvf harbor-offline-installer-v2.1.2.tgz

配置

Harbor安装目录下操作

cp harbor.yml.tmpl harbor.yml

vim harbor.yml

修改hostname、http端口,https的部分可以暂时屏蔽。

修改默认密码、harbor数据存储地址。

安装

./prepare

./install.sh

执行“prepare”脚本的情况如下

见上图,其实是在下载多个镜像。紧接着,执行install.sh

 

若没有安装“docker-compose”,执行“install.sh”脚本时,会提示报错。

提示信息:need to install docker-compose by yourself first...

执行“install.sh”,经历过多个steps之后,在 [Step 5] 开始启动harbor服务。

在[Step 5],提示报错。

提示:已经有了名为“registry”的容器。“registry”的容器在“搭建私有仓库”时创建的。

要在当前机器上,删除名为“registry”的容器。操作如下:

docker stop 容器ID

docker rm -f 容器ID

删除名为“registry”的容器之后,再执行./install.sh

启动成功。

访问Harbor

访问地址:http://xxx.xxx.xx.237:5001

账号密码:admin/your_password

 

登录成功

 

在服务器上,查看到多个容器,Harbor的web服务是一个Nginx服务。

 

Harbor服务管理

## Harbor 安装目录下执行

docker-compose up -d   ##启动

docker-compose stop    ##停止

docker-compose restart  ##重新启动

用端口监听可以查看服务是否启动

 

登录docker私仓

在客户机上操作,先登录,再推送镜像。

登录命令

docker login xxx.xxx.xxx.xxx:port

输入 用户、密码

见上图,提示报错,http协议的问题。

 

解决方案:

vim /etc/docker/daemon.json

#以下配置以供格式的参考#

{

"max-concurrent-downloads": 3,

"max-concurrent-uploads": 5,

"registry-mirrors": ["https://999zldxe.mirror.aliyuncs.com/"],

"insecure-registries": ["xxx.xxx.xxx.237:5001"]

}

注意:当前机器是客户机,修改daemon.json文件,是在客户机上进行。

 

重启docker

systemctl daemon-reload

systemctl restart docker

 

查看docker状态

systemctl status docker

再次登录,成功。

退出 docker logout

 

Push到私仓

在客户机上,将制作好的镜像,推送到团队私有仓库。

打标签

针对打算推送的镜像,打标签,加上服务端IP和端口信息。

命令

docker  tag  yan_springboot  xxx.xxx.xxx.237:5001/yan_springboot

yan_springboot 是打算推送的镜像,如上命令,将镜像名称

yan_springboot

变成

xxx.xxx.xxx.237:5001/yan_springboot

 

推送操作

Docker push 镜像名称

docker push xxx.xxx.xxx.237:5001/yan_springboot

提示报错:非法的仓库名称。直接把镜像名称当成了仓库名,说明应该先添加仓库名。

 

再针对yan_springboot 镜像打标签。

docker tag yan_springboot xxx.xxx.xxx.237:5001/yan/yan_springboot

yan_springboot

变成

xxx.xxx.xxx.237:5001/yan/yan_springboot

 

比第一次的标签多了一个“/yan”,再推送。

docker push xxx.xxx.xxx.237:5001/yan/yan_springboot

提示报错:project not found

 

说明要预先建立自己的project,在Harbor服务器上,建立自己的“PROJECT”。

新建Project

登录Harbor web服务,点击“新建项目”按钮。

默认有个“library”项目。上图中“yan”就是自己新建的project。

 

新建项目界面

新建好project之后,再次推送,成功。

推送命令

docker push xxx.xxx.xxx.237:5001/yan/yan_springboot

在harhor web界面上查看推送上来的镜像。

可以看到 yan-tomcat、yan-springboot 这两个由我本人自定义的镜像。

如上,自定义的镜像成功被推送团队私有仓库。

 

镜像下载与测试

镜像列表

点击镜像名称,查看镜像信息。

 

基本信息

yan-tomcat的基本信息。

可以看到标签、大小等信息。

 

拉取操作

获取pull命令

Pull内容如下

docker pull xxx.xxx.xxx.xxx:5001/yan/yan-tomcat@sha256:56ac06269a338084bab2fb1b83afdab10daf8280492adfd689910369a4e6ca79

 

再找一个docker 客户机,docker login之后执行如上命令,拉取镜像。

启动容器服务

对应端口

容器启动后,访问服务

yan-tomcat服务如下

yan-springboot服务如下

见上图,从团队私有仓库拉取镜像,再启动容器,成功!

如上,创建Harbor 私有仓库,推送镜像、拉取镜像、启动服务,全部成功!

 

Docker-Compose

先看下官网,docker-compose部分。

根据官网提示,最新加载1.28版本。

下载之后,按官网提示进行安装,运行docker-compose --version报错

GLIBC_2.28 NOT FOUND

经排查,说不要安装最新版。

下载

官网用github下载太慢了,改成daocloud

curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.1/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose

若如上命令报错

肯定是机器的网络问题。

如下是在另外一台机器上下载的,一瞬间就下载完成了。

下载完成后,查看

docker-compose --version

果然版本不要太新。安装完成。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值