76、docker-harbor

一、docker-harbor 私有仓库部署和管理:

docker-harbor 私有仓库部署和管理:

harbor:开源的企业级的docker仓库软件。

仓库:私有仓库、公有仓库。私有仓库。

docker-harbor:是有图形化的,页面UI展示的一个工具。操作起来很直观。

harbor:每个组件都是由容器构建的,所以安装harbor必须有docker。

docker-compose一键编排,所以也是需要安装的。

1.1、harbor:

1、通过角色对权限进行控制,用户和仓库都是基于项目进行组织。

不同的用户在不同的项目中拥有不同的权限

2、镜像复制,每个仓库(之间可以通信)之间可以互相复制里面的

镜像

A <--------- B

NGINX NGINX

HTTP

MYSQL

3、UI界面可以对镜像进行删除,删除之后也会释放本机的空间。

4、图形化界面,可以用浏览器进行访问。

5、审计管理,所有对镜像仓库的操作都是记录,用于审计管理

1.2、harbor的组件:

主要的组件:

1、proxy:nginx的前端页面,nginx的配置中做个反向代理。浏览器的不同的请求转发到后端不同的容器中。

2、Registry:仓库,保存镜像,同时push/pull

3、core service:Harbor的核心功能,对用户进行授权,监测仓库内镜像的变化以及token,根据不同的权限给与不同的token,

token相等于缓存用户登录的信息,一次认证,下次不需要验证。

在这里插入图片描述

4、database:负责存储用户的权限,审计日志,docker镜像的分组信息

5、JOB services:镜像复制。

6、log collector:日志收集工具。

以上组件都是由容器运行,docker-compose 一键拉取部署。

二、实验

客户端:192.168.168.71 docker harbor

服务端:192.168.168.72 docker harbor docker-compose

服务端2:192.168.168.72 docker harbor docker-compose

1、部署服务端

2、客户端和服务端之间上传,下载镜像,权限控制

3、仓库之间的镜像复制

2.1、docker-harbor安装

[root@docker1 opt]# docker-compose -v   ##查看docker-compose版本
Docker Compose version v2.18.0
[root@docker1 opt]# rz -E
rz waiting to receive.
[root@docker1 opt]# ls
docker-compose.yml  harbor-offline-installer-v2.8.1.tgz  html  mysql  mysql1  nginx  nhtml  php
[root@docker1 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
[root@docker1 opt]# ls
docker-compose.yml  harbor-offline-installer-v2.8.1.tgz  mysql   nginx  php
harbor              html                                 mysql1  nhtml
[root@docker1 opt]# cd harbor/

[root@docker1 harbor]# ls
common.sh  harbor.v2.8.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

[root@docker1 harbor]# cp harbor.yml.tmpl harbor.yml

[root@docker1 harbor]# vim harbor.yml   ##修改harbor配置文件

  5 hostname: 192.168.168.71            ##harbor仓库的地址

 13 #https:                             ##注释https
 14   # https port for harbor, default is 443
 15  # port: 443                          ##注释https端口

 34 harbor_admin_password: 123456

[root@docker1 harbor]#  ./prepare            ##配置harbor所需要的配置文件和环境

[root@docker1 harbor]# pwd
/opt/harbor
[root@docker1 harbor]# ./install.sh           ##启动安装脚本

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2、本机上传镜像

网页新建项目:

在这里插入图片描述

[root@docker1 harbor]# docker tag nginx:1.22 192.168.168.71/test1/nginx:v1   ##给本地镜像打标签,不打标签,上传不了harbor仓库

[root@docker1 harbor]# vim /usr/lib/systemd/system/docker.service           

ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.168.71 --           containerd=/run/containerd/containerd.sock                        ##客户端指定到服务端,从服务端获取镜像

[root@docker1 harbor]# systemctl daemon-reload       ##改完配置文件进行重启
[root@docker1 harbor]# systemctl restart docker

[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.168.71

在这里插入图片描述

对应解决:
[root@docker1 harbor]# ./install.sh               ##改完配置文件,重启docker后,进行初始化安装

[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.168.71 ##登录仓库,进行上传和下载

[root@docker1 harbor]# docker push 192.168.168.71/test1/nginx:v1             ##上传镜像nginx:v1

[root@docker1 harbor]# docker tag nginx:1.18 192.168.168.71/test1/nginx:v2   ##给镜像打标签
[root@docker1 harbor]# docker push 192.168.168.71/test1/nginx:v2             ##上传镜像nginx:v2

在这里插入图片描述

2.3、本机从仓库下载镜像两种方法

在这里插入图片描述

在这里插入图片描述

[root@docker1 harbor]# docker pull 192.168.168.71/test1/nginx:v2

2.4、远程下载仓库镜像

[root@docker2 ~]# docker -v
Docker version 24.0.1, build 6802122
[root@docker2 ~]# docker-compose -v
Docker Compose version v2.18.0
[root@docker2 ~]# cd /opt/
[root@docker2 opt]# ls
containerd  es2                           kibana    test
es1         jenkins-2.396-1.1.noarch.rpm  logstash  test.yaml
[root@docker2 opt]# rz -E
rz waiting to receive.
[root@docker2 opt]# ls
containerd  harbor-offline-installer-v2.8.1.tgz  logstash
es1         jenkins-2.396-1.1.noarch.rpm         test
es2         kibana                               test.yaml
[root@docker2 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
[root@docker2 opt]# ls
containerd  es2     harbor-offline-installer-v2.8.1.tgz  kibana    test
es1         harbor  jenkins-2.396-1.1.noarch.rpm         logstash  test.yaml
[root@docker2 opt]# cd harbor/
[root@docker2 harbor]# cp harbor.yml.tmpl harbor.yml
[root@docker2 harbor]# vim harbor.yml

5 hostname: 192.168.168.72

 13 #https:
 14   # https port for harbor, default is 443
 15  # port: 443

 34 harbor_admin_password: 123456


[root@docker2 harbor]#  vim /usr/lib/systemd/system/docker.service 

ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.168.71 --containerd=/run/containerd/containerd.sock                                         ##指向服务端

[root@docker2 harbor]# systemctl daemon-reload 
[root@docker2 harbor]# systemctl restart docker

[root@docker2 harbor]# docker login -u admin -p 123456 http://192.168.168.71       ##登录服务端的仓库
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@docker2 harbor]# docker images

[root@docker2 harbor]# docker pull 192.168.168.71/test1/nginx:v2    ##下载第一种

第二种一键拉取命令到命令行执行

在这里插入图片描述

[root@docker2 harbor]# docker tag centos:7 192.168.168.71/test1/centos:v1 ##给需要上传的进行打标签

[root@docker2 harbor]# docker images

[root@docker2 harbor]# docker push 192.168.168.71/test1/centos:v1 ##上传镜像到服务器的仓库中



再试一下退出仓库:

从服务器拉取镜像到本地

[root@docker1 harbor]# docker pull 192.168.168.71/test1/centos:v1
[root@docker1 harbor]# docker images

在这里插入图片描述

--------------------------远程下载镜像-----------------

2.5:创建用户

在这里插入图片描述

指定角色

在这里插入图片描述

2.6、角色:

1、添加用户,用户就是普通用户,私有用户是无法浏览的。

2、要浏览私有项目,必须要项目中添加成员,设定成员的角色。

2.7、角色的类型

  • 受限访客:只能看,不能上传,也不能下载,也没有其他权限。

  • 访客:拥有只读权限,可以拉取镜像,不能上传,也无法删除镜像。

  • 开发者:可以读写,但是没有删除权限。

  • 维护人员:既有读写,也可以对项目的权限进行修改

  • 项目管理员:读写,修改,删除。

##指定自定义用户登录仓库

docker login -u 用户名 -p 用户密码 http://192.168.168.71

[root@docker1 harbor]# docker login -u liyang -p Liyang123 http://192.168.168.71
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
docker logout   ##退出登录

2.8、基于docker,安装docker-compose,安装docker-harbor

----------------------------安装docker-compose-----------------------------
[root@docker3 opt]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
[root@docker3 opt]# chmod 777 /usr/local/bin/docker-compose 
[root@docker3 opt]# docker-compose --version
Docker Compose version v2.18.0
----------------------安装docker-harbor------------------------
[root@docker3 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
[root@docker3 opt]# ls
docker-compose.yml  harbor-offline-installer-v2.8.1.tgz  mysql   nginx  php
harbor              html                                 mysql1  nhtml
[root@docker3 opt]# cd harbor/

[root@docker3 harbor]# ls
common.sh  harbor.v2.8.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare

[root@docker3 harbor]# cp harbor.yml.tmpl harbor.yml

[root@docker3 harbor]# vim harbor.yml

  5 hostname: 192.168.168.73

 13 #https:
 14   # https port for harbor, default is 443
 15  # port: 443

 34 harbor_admin_password: 123456

[root@docker3 harbor]#  ./prepare

[root@docker3 harbor]# pwd
/opt/harbor
[root@docker3 harbor]# ./install.sh 

2.9、实现192.168.168.71/harbor仓库备份到192.168.168.73/harbor仓库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

vim /etc/docker/daemon.json ##修改docker源

Docker Harbor是一个开源的企业级容器镜像仓库,它可以帮助用户管理和分发Docker镜像。通过搭建Docker Harbor仓库,用户可以自己创建和维护私有的镜像仓库,并使用https认证方式进行安全访问。 要搭建Docker Harbor仓库,首先需要下载和安装Docker Compose工具。可以使用以下命令下载和安装Docker Compose: ``` curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ``` 接着,可以使用以下命令检查Docker Compose是否安装成功: ``` docker-compose -v ``` 下载完Docker Compose后,需要维护和管理Harbor仓库。首先,需要下载registry镜像并创建本地私有仓库。可以使用以下命令下载registry镜像: ``` docker pull registry ``` 接着,在daemon.json文件中添加私有镜像仓库地址。可以使用以下命令编辑daemon.json文件: ``` vim /etc/docker/daemon.json ``` 并在文件中添加如下内容: ``` { "registry-mirrors": ["https://3c7tpzyf.mirror.aliyuncs.com"], "insecure-registries": ["192.168.122.10:5000"] } ``` 然后,重启Docker服务以使更改生效: ``` systemctl restart docker.service ``` 最后,使用以下命令运行registry容器来启动私有仓库: ``` docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest ``` 以上就是搭建Docker Harbor仓库的过程。通过这个仓库,您可以方便地管理和分发Docker镜像。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [docker-harbor2.4.2-https私有仓库-有验证和web](https://download.csdn.net/download/qq_34953582/87952076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Docker私有仓库与Harbor](https://blog.csdn.net/weixin_48861962/article/details/121726836)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值