docker仓库--harbor

简介: docker仓库--harbor

首先,先说说harbor是什么?


harbor就是一个类似于hub.docker.com的仓库. 这是我们自己搭建的一个仓库, 如果公司使用, 不可能把镜像都上传到hub.docker.com上, 费钱不说, 也不安全.

所以, 我们需要自己学会搭建一个这样的平台.

 

下面分几个部分介绍:

1. harbor介绍

2. harbor的核心组件

3. harbor的安装要求

4. harbor安装

5. 创建https证书以及配置相关目录权限

6. 修改harbor配置文件并启动

7. harbor的基本用法


 

一. harbor介绍


  1. Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的原理。所以,Harbor正是一个用于存储Docker镜像的企业级Registry服务。
  2. Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到以Registry起的容器的私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。


二. Harbor核心组件


  • Proxy:他是一个nginx的前端代理,代理Harbor的registry,UI, token等服务。
  • db:负责储存用户权限、审计日志、Dockerimage分组信息等数据。
  • UI:提供图形化界面,帮助用户管理registry上的镜像, 并对用户进行授权。
  • jobsevice:jobsevice是负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log。
  • Adminserver:是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候回需要加载adminserver的配置。
  • Registry:镜像仓库,负责存储镜像文件。
  • Log:为了帮助监控Harbor运行,负责收集其他组件的log,供日后进行分析。


三. 底层安装需求


1. python 应该是2.7或更高版本


python

1187916-20200609060945780-1503819213.png


2. Docker引擎应为1.10或更高版本


1187916-20200609061033377-396638799.png


3. Docker Compose需要为1.6或更高版本


1187916-20200609061058578-1234204861.png



四. Harbor安装: Harbor官方地址:


https://github.com/goharbor/harbor/releases  下载offline的版本即可.

国内github很慢, 使用加速器下载: https://toolwa.com/github/

1. 将harbor上传到虚拟机上

1187916-20200609061742429-777443506.png


2. 解压后,将其放到/usr/local下

1187916-20200609061818973-473660046.png


五. 创建https证书以及配置相关目录权限

第一步:生成私钥



openssl genrsa -des3 -out server.key 2048


输入密码:123456

1187916-20200609062943392-1664230623.png

第二步: 创建证书请求

openssl req -new -key server.key -out server.csr

输入上一步的密码:123456


1187916-20200609063627454-1177683708.png

第三步:备份

cp server.key server.key.org

1187916-20200609063853916-2200227.png

第四步:退秘钥

openssl rsa -in server.key.org -out server.key

1187916-20200609063927594-338781320.png


第五步: 创建证书

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

1187916-20200609064636620-899134301.png


第六步:创建目录

mkdir -p /data/cert   //名字不可变

第七步: 将证书拷贝到/data/cert目录下

mv server.* /data/cert/

1187916-20200609064951122-1275543526.png


第八步: 设置文件夹权限

chmod -R 777 /data/cert

六. 修改harbor的配置文件并启动


第一步: 需改配置文件


进入到/usr/local/harbor目录


修改harbor.yml配置文件, 修改内容如下

六. 修改harbor的配置文件并启动
第一步: 需改配置文件
进入到/usr/local/harbor目录
修改harbor.yml配置文件, 修改内容如下


第二步: 执行install.sh脚本

1187916-20200609071613849-327423296.png


看到这个提示,就是成功了


这是执行


docker ps -a


后台已经执行了一些进程了

1187916-20200609071755568-161421163.png

第三步: 配置本机macos的hosts

192.168.198.143 hub.lxl.com

指定访问hub.lxl.com的时候,跳转到192.168.198.143服务器上

 

第四步: 访问harbor请求地址


https://hub.lxl.com/

这个网址, 我通过google打不开, 报异常


1187916-20200609095922338-1015881017.png

使用mac自带的浏览器可以打开, 输入用户名/密码

admin/123456

七. harbor的基本用法



1. 系统管理


登录到harbor仓库以后, 我们可以看到当前有一个公共的项目, 其访问级别是public.

1187916-20200609102601046-80352224.png


public的含义是, 各个用户登录后都可以看到这个仓库. 这个仓库可以用来存放一些基础镜像


2. 用户管理


添加一个新用户sa, 密码是!QAZ2wsx

1187916-20200609102808222-1263204706.png


在admin账号下,新建一个私有仓库docker. 这个仓库只有admin账户可以访问

1187916-20200609103115250-1287826476.png

使用sa登录, 将看不到docker仓库


第三步: 切换账号sa登录,


sa/!QAZ2wsx


新建一个仓库叫sa, 并且是私有的.


1187916-20200609103337393-318276206.png


第四步: 我们在192.168.198.143服务器上上传一个镜像, 并push到sa私有仓库

1. 给192.168.198.143添加受信任的域名

{
  "registry-mirrors": ["https://w52p8twk.mirror.aliyuncs.com"],
  "insecure-registries":["hub.lxl.com"]
}


2. 配置本地hosts

192.168.198.143 hub.lxl.com

3. 重启docker

systemctl daemon-reload
systemctl restart docker

这一次docker重启会使用较长的时间, 因为启动的时候会自动启动harbor仓库

docker ps -a

一定要查看一下镜像harbor的镜像是否都启动. 如果没有都启动, 那么进入/usr/local/harbor,执行./install.sh


1187916-20200609105535426-1270570234.png

4. 登录docker仓库


docker login hub.lxl.com

1187916-20200609105601602-1588411529.png


5. 查看镜像镜像上传到harbor的方式

1187916-20200609105711017-1364725502.png

6. 生成tag, 并push到harbor仓库


docker tag tomcat9:latest hub.lxl.com/sa/tomcat9:1.0
docker push hub.lxl.com/sa/tomcat9:1.0

上传完成:

1187916-20200609105922061-2099799791.png

查看harbor结果


1187916-20200609110006463-1656813156.png


我们看到了上传的结果, 接下来pull拉取到192.168.198.142服务器上


第五步. 从harbor仓库将镜像拉取到192.168.198.142服务器


1. 给192.168.198.143添加受信任的域名


{
  "registry-mirrors": ["https://w52p8twk.mirror.aliyuncs.com"],
  "insecure-registries":["hub.lxl.com"]
}

2. 配置本地hosts

192.168.198.143 hub.lxl.com

3. 重启docker

systemctl daemon-reload
systemctl restart docker

这一次docker重启会使用较长的时间, 因为启动的时候会自动启动harbor仓库


docker ps -a

一定要查看一下镜像harbor的镜像是否都启动. 如果没有都启动, 那么进入/usr/local/harbor,执行./install.sh

1187916-20200609105535426-1270570234.png


4. 登录docker仓库

docker login hub.lxl.com

1187916-20200609105601602-1588411529.png

5. 拉取镜像

docker pull hub.lxl.com/sa/tomcat9

1187916-20200609110837844-905094523.png


成功拉取, 接下来启动镜像, 访问容器就ok了

相关文章
|
3月前
|
Docker 容器
Docker自建仓库之Harbor高可用部署实战篇
关于如何部署Harbor高可用性的实战教程,涵盖了从单机部署到镜像仓库同步的详细步骤。
169 15
Docker自建仓库之Harbor高可用部署实战篇
|
3月前
|
存储 Kubernetes Cloud Native
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
99 1
|
2月前
|
网络协议 应用服务中间件 nginx
私有的docker私有镜像站仓库harbor
私有的docker私有镜像站仓库harbor
|
2月前
|
存储 应用服务中间件 开发工具
docker镜像上传至Harbor及从Harbor下载
docker镜像上传至Harbor及从Harbor下载
|
2月前
|
数据可视化 应用服务中间件 nginx
Docker如何连接至本地私服Harbor中 推送镜像、查看镜像、下载镜像
Docker如何连接至本地私服Harbor中 推送镜像、查看镜像、下载镜像
162 0
|
3月前
|
存储 测试技术 数据安全/隐私保护
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
896 12
|
3月前
|
Docker 容器
Docker Hub镜像公共仓库使用
这篇文章介绍了如何使用Docker Hub公共仓库进行镜像的创建、上传、下载和管理。
1836 8
|
3月前
|
运维 数据安全/隐私保护 Docker
Docker自建仓库之Docker Registry部署实战
关于如何使用Docker Registry镜像搭建本地私有Docker仓库的实战教程,包括了下载镜像、创建授权目录和用户名密码、启动Registry容器、验证端口和容器、测试登录仓库、上传和下载镜像的详细步骤。
1085 5
|
3月前
|
应用服务中间件 nginx 数据安全/隐私保护
使用Harbor搭建Docker私有仓库
Harbor是一款开源的企业级Docker仓库管理工具,分为私有与公有仓库两种类型,其中私有仓库被广泛应用于运维场景。Harbor提供图形化界面,便于直观操作,并且其核心组件均由容器构建而成,因此安装时需预先配置Docker及docker-compose。Harbor支持基于项目的用户与仓库管理,实现细粒度的权限控制;具备镜像复制、日志收集等功能,并可通过UI直接管理镜像,支持审计追踪。部署Harbor涉及配置文件调整、登录认证等步骤,并可通过客户端进行镜像的上传、拉取等操作。系统内置多种角色,包括受限访客、访客、开发者、维护人员及管理员,以满足不同场景下的使用需求。
157 0
|
JSON Shell Linux
docker学习(四)--仓库
docker中仓库使用
695 0