Docker Harbor安装、使用

近咫尺 2024-08-09 09:37:05 阅读 64

docker 官方地址

1. harbor的概述

harbor是VMware公司开源的企业级docker registry项目。主要是实现为用户去迅速搭建一个docker registry服务。

提供了可视化UI界面,提供了多个项目的镜像权限管理及控制功能。安装后可以体验下。

Harbor的每个组件都是以Docker 容器的形式构建的,使用docker - compose来对它进行部署。用于部署Harbor 的docker- compose模板位于 harbor/ docker-compose.yml。

2. harbor 的核心组件

1、Proxy: Harbor 的Registry、UI、Token 服务等组件,都处在nginx 反向代理后边。该代理将来自浏览器、docker clients 的请求转发到后端不同的服务上。

2、Registry:负责储存Docker 镜像,并处理Docker push/pull 命令。

由于要对用户进行访问控制,即不同用户对Docker镜像有不同的读写权限,Registry 会指向一个Token 服务,强制用户的每次Docker pull/push 请求都要携带一个合法的Token,Registry会通过公钥对Token 进行解密验证。

3、core services: Harbor的核心功能,主要提供以下3个服务

1. UI (harbor-ui) :提供图形化界面,帮助用户管理Registry. 上的镜像(image) ,并对用户进行授权。

2. WebHook: 为了及时获取Registry上 image状态变化的情况,在Registry上配置Webhook, 把状态变化传递给UI模块。

3. Token 服务:负责根据用户权限给每个Docker push/pull 命令签发Token。 Docker 客户端向Registry 服务发起的请求,如果不包含Token, 会被重定向到Token 服务,获得Token 后再重新向Registry 进行请求。

4、Database (harbor-db) :为core services提 供数据库服务,负责储存用户权限、审计日志、Docker镜像分组信息等数据。

5、Job services:主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。

6、Log collector (harbor-log) :负责收集其它组件的log,供日后进行分析,健康检查等      

3.Harbor构建Docker私有仓库

1.环境准备:

CentOS7.6、docker 、docker-compose 、harbor 包。

2.安装并启动docker

<code>1.检查内核版本,必须是3.10及以上

# yum list installed | grep docker

2、检查内核版本,必须是3.10及以上

# uname -r

3.把yum包更新到最新

# yum update

4.存在旧版本_删除旧版本

#sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

5.需要的安装包

# sudo yum install -y yum-utils

6.设置镜像的仓库

# sudo yum-config-manager \

--add-repo \

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

7.更新 yum安装包

# yum makecache fast

8.安装docker

# sudo yum install docker-ce docker-ce-cli containerd.io

9、启动docker

# systemctl start docker

设置开机启动docker

# systemctl enable docker

关闭docker命令

# systemctl stop docker

10、查看版本

# docker version

11、检测是否启动成功,可以使用search命令

# docker search mysql

3.安装Docker-compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Compose 使用的三个步骤:

使用 Dockerfile 定义应用程序的环境。

使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

最后,执行 docker-compose up 命令来启动并运行整个应用程

下载最新版本 docker-compose 等待自动安装。

curl -L https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

二进制文件赋可执行权限

chmod +x /usr/local/bin/docker-compose

测试下docker-compose是否安装成功: docker-compose --version

4、Harbor服务搭建及启动

1、下载Harbor安装文件

<code># mkdir -p /harbor

# cd /harbor/

# wget https://github.com/goharbor/harbor/releases/download/v1.10.10/harbor-online-installer-v1.10.10.tgz

# tar -zxf harbor-online-installer-v1.10.10.tgz

2、修改配置Harbor

[root@localhost harbor]# ls

harbor harbor-online-installer-v1.10.10.tgz

[root@localhost harbor]# cd harbor

[root@localhost harbor]# ls

LICENSE common common.sh docker-compose.yml harbor.yml install.sh prepare

[root@localhost harbor]# vi harbor.yml

注意:

首先要修改hostname为机器地址,使用的是http,所以https部分需要注掉。端口自定义

3、启动Harbor

在Harbor目录下

<code>./install.sh

docker-compose up -d

注意:启动时 docker、docker-compose是正常运行状态。

修改配置文件后 ,避免修改不生效,执行:

systemctl daemon-reload

systemctl restart docker

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

4、访问Harbor

根据上面的配置。我这里访问 http://192.168.87.131:5100/

默认用户 和登录密码 可以从 harbor.yml 中找到,官网有个地方也有说明。可以修改中的密码。

admin   Harbor12345

页面

5.docker 私有仓库的使用

<code>1、仓库登录:

docker login -u admin -p Harbor12345 http://192.168.87.131:5100

2、制作镜像:可以是下载的镜像、通过dockerFile制作的镜像

docker pull mysql

docker build -f DockerFile

docker save -o my_image.tar my_image:latest

docker save -o images.tar image1:tag1 image2:tag2 image3:tag3

这个命令将会把名为 my_image:latest 的 Docker 镜像保存为一个名为 my_image.tar 的 tar 归档文件

docker load -i my_image.tar : 这个命令将会加载 my_image.tar 文件中的镜像到 Docker 环境中。

3、然后为该镜像打上新的标签,标签格式为:Harbor地址/项目名/镜像名称:镜像标签。如:192.168.87.131:5100/test/action:2403086585

docker tag 1d01459ee952 192.168.87.131:5100/test/action:2403086585

4、将镜像上传到私有仓库

docker push 192.168.87.131:5100/test/action:2403086585

5、下载私有仓库的镜像

docker pull 192.168.87.131:5100/test/action:2403086585



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。