docker私有仓库(代码片段)

author author     2023-04-26     393

关键词:

Harbor介绍

部署Harbor所依赖的Docker Compose服务
部署Harbor服务
Harbor日常操作管理
Harbor管理生命周期

Harbor是VMware公司开源的企业级Docker Registry项目

Harbor的优势

基于角色控制
基于镜像的复制策略
支持LDAP/AD
图像删除和垃圾收集
图形UI
审计
RESTful API
Proxy
通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务
Registry
负责储存Docker镜像,并处理docker push/pull 命令
Core services
Harbor的核心功能,包括UI,webhook,token 服务
Database
为core service提供数据库服务
Log collector
负责收集其他组件的log,供日后进行分析

Docker私有仓库架构拓扑

技术图片
用户请求通过Proxy反向代理访问Core services,UI提供web界面,token令牌,你第一次登录之后服务器会给你一串序列号,下次直接登录就行,你需要下载的镜像信息,属性,都存放在后面的database,再通过webhook回调去registry私有仓库调取镜像。这一系列的操作都存放在日志中。

-------------------------------搭建harbor私有仓库----------------------------------

harbor被部署为多个docker容器,因此可以部署在任何支持docker的linux的发行版上
我们还需要docker-compose编排工具,编排工具执行了多个docker容器的操作
[root@localhost ~]# mount.cifs //192.168.100.25/compose /abc/
Password for root@//192.168.100.25/compose:  
[root@localhost ~]# cd /abc/
[root@localhost abc]# ls
consul_0.9.2_linux_amd64.zip  consul-template_0.19.3_linux_amd64.zip  docker-compose
[root@localhost abc]# cp docker-compose /usr/local/bin/

[root@localhost abc]# tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

[root@localhost abc]# cd /usr/local/
[root@localhost local]# ls
bin  etc  games  harbor  include  lib  lib64  libexec  sbin  share  src
[root@localhost local]# cd harbor/
[root@localhost harbor]# ls
common                     docker-compose.yml     harbor.v1.2.2.tar.gz  NOTICE
docker-compose.clair.yml   harbor_1_1_0_template  install.sh            prepare
docker-compose.notary.yml  harbor.cfg             LICENSE               upgrade

hostname = 192.168.136.185

#开启私有仓库
[root@localhost harbor]# sh /usr/local/harbor/install.sh

[root@localhost harbor]# docker-compose ps

#如果一切正常,可以打开浏览器访问http://192.168.136.185 的管理页面
默认用户名密码是:admin,Harbor12345

我们先创建一个项目,我们的一类镜像可以放在里面

技术图片
技术图片

#我们本地进行上传镜像
[root@localhost harbor]# docker login -u admin -p Harbor12345 http://127.0.0.1

[root@localhost harbor]# docker pull cirros

[root@localhost harbor]# docker tag cirros 127.0.0.1/chen/cirros:v1
[root@localhost harbor]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
127.0.0.1/chen/cirros       v1                  bc94bceaae77        12 months ago       10.3MB
cirros                      latest              bc94bceaae77        12 months ago       10.3MB

[root@localhost harbor]# docker push 127.0.0.1/chen/cirros:v1
The push refers to repository [127.0.0.1/chen/cirros]
abbd6d6ac643: Pushed 
75b99987219d: Pushed 
0cc237193a30: Pushed 
v1: digest: sha256:96137d51e0e46006243fa2403723eb47f67818802d1175b5cde7eaa7f19446bd size: 943

我们通过web界面查看一下镜像有没有上传成功

技术图片

#远程客户端上传镜像到私有仓库
#远程登录会报错
[root@localhost ~]# docker login -u admin -p Harbor12345 http://192.168.136.185
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://192.168.136.185/v2/: dial tcp 192.168.136.185:443: connect: connection refused
#我们要指定私有仓库实列
[root@localhost ~]# vim /usr/lib/systemd/system/docker.service 
14 ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.136.185 --containerd=/run/contai    nerd/containerd.sock

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

[root@localhost ~]# docker login -u admin -p Harbor12345 http://192.168.136.185

#远程下载私有仓库的镜像
[root@localhost ~]# docker pull 192.168.136.185/chen/cirros:v1

#远程上传镜像到私有仓库
[root@localhost ~]# docker push 192.168.136.185/chen/cirros:v2
The push refers to repository [192.168.136.185/chen/cirros]
abbd6d6ac643: Layer already exists 
75b99987219d: Layer already exists 
0cc237193a30: Layer already exists 
v2: digest: sha256:96137d51e0e46006243fa2403723eb47f67818802d1175b5cde7eaa7f

网页验证

技术图片

#关闭harbor私有仓库

[root@localhost harbor]# docker-compose down -v

[root@localhost harbor]# ./prepare 

#开启私有仓库
[root@localhost harbor]# docker-compose up -d

创建用户

技术图片

#我们用刚才创建的用户来登录私有仓库
[root@localhost harbor]# docker login http://192.168.136.185
Username: chen
Password: 

在项目中我们加入一个用户

技术图片技术图片

如果要移除服务容器同时保留镜像数据库/数据库


docker-compose down -v

如需重新部署,需要移除harbor服务容器全部数据

/var/log/Harbor/目录下
rm-rf /data/database/ /data/registry/

docker本地仓库和私有仓库(代码片段)

docker本地仓库和私有仓库一、docker本地仓库1.首先下载registry镜像2.在daemon.json文件中添加私有镜像仓库地址3.运行registry容器docker容器重启策略4.为镜像打标签5.上传到私有仓库6.列出私有仓库的所有镜像7.列出私有仓库的centos镜像... 查看详情

docker本地仓库和私有仓库(代码片段)

docker本地仓库和私有仓库一、docker本地仓库1.首先下载registry镜像2.在daemon.json文件中添加私有镜像仓库地址3.运行registry容器docker容器重启策略4.为镜像打标签5.上传到私有仓库6.列出私有仓库的所有镜像7.列出私有仓库的centos镜像... 查看详情

docker建立私有仓库(代码片段)

Docker(五)建立私有仓库随着创建的镜像日益增多,就需要一个保存镜像的地方,这就是仓库。仓库目前有两张:1:公有仓库2:私有仓库私有仓库建立[[email protected]~]dockerpullregistryUsingdefaulttag:latestlatest:Pullingfromlibrary/registry4... 查看详情

docker私有仓库(代码片段)

一、安装docker私有仓库1.拉取私有仓库的镜像dockerpullregistry2.启动私有仓库dockerrun-di--name=registry-p5000:5000registry3.浏览器访问http://192.168.25.129:5000/v2/_catalog。若浏览器显示"repositories":[]则表示安装成功4.让docker信任私有仓库地址1)编辑... 查看详情

docker私有仓库registry(代码片段)

1、docker私有仓库的搭建与使用   docker不仅有一个中央仓库,同时也允许我们搭建自己的私有仓库,如果读者对maven有了解,将很容易理解私有仓库的优势:   1、节省带宽,镜像无需从中央仓库下载,只需... 查看详情

docker私有仓库搭建使用教程(代码片段)

Docker私有仓库一、私有仓库搭建#1、拉取私有仓库镜像dockerpullregistry#2、启动私有仓库容器dockerrun-id--name=registry-p5000:5000registry#3、打开浏览器输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到"repositories":[]表示私有... 查看详情

docker搭建本地私有仓库(代码片段)

...搭建本地私有仓库搭建本地私有仓库#首先下载registry镜像dockerpullregistry#在daemon.json文件中添加私有镜像仓库地址vim/etc/docker/daemon.json"insecure-registries":["192.168.80.10:5000"],#添加,注意用逗号结尾"regist 查看详情

docker搭建本地私有仓库(代码片段)

...搭建本地私有仓库搭建本地私有仓库#首先下载registry镜像dockerpullregistry#在daemon.json文件中添加私有镜像仓库地址vim/etc/docker/daemon.json"insecure-registries":["192.168.80.10:5000"],#添加,注意用逗号结尾"registr 查看详情

docker--harbor私有仓库(代码片段)

Docker--Harbor私有仓库Docker--Harbor私有仓库Harbor很重要阿里云的镜像仓库必须掌握#一.//查看Docker-Compose版本判断安装是否是成功chmod+xdocker-composecpdocker-compose/usr/local/bin/docker-compose-v"由于Harbor镜像仓库的镜像管理要用到compose所以compose... 查看详情

docker部署registry私有仓库+harbor私有仓库(代码片段)

有时候使用DockerHub这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。两种不同的搭建Docker私有仓库的方法,都必须要基于一个Docker服务器上,相比较而言,Harbor功能更强大些。之前详细写过Registry私有仓库的... 查看详情

docker使用之私有仓库构建(代码片段)

docker使用之私有仓库构建 1、dockerregistry镜像下载dockersearchregistry#搜索镜像dockerpullregistry#下载镜像2、启动registry  查看详情

微服务架构师-docker私有镜像仓库的配置和使用(代码片段)

文章目录docker私有化仓库介绍私有仓库介绍私有镜像仓库有哪些有优点?实验环境规划使用registry搭建docker私有仓库初始化实验环境-安装docker开启包转发功能和修改内核参数配置xuegod64为docker私有仓库服务端配置xuegod63上的doc... 查看详情

docker------搭建本地私有仓库及horbor私有仓库(代码片段)

目录一.搭建本地私有仓库二.Docker--Harbor私有仓库部署与管理1.Harbor简介①什么是Harbor②Harbor的特性③Harbor的构成2.Harbor部署①部署Docker-Compose服务②部署Harbor服务③启动Harbor④查看Harbor启动镜像⑤创建一个新项目三.维护管理Harbor1... 查看详情

docker------搭建本地私有仓库及horbor私有仓库(代码片段)

目录一.搭建本地私有仓库二.Docker--Harbor私有仓库部署与管理1.Harbor简介①什么是Harbor②Harbor的特性③Harbor的构成2.Harbor部署①部署Docker-Compose服务②部署Harbor服务③启动Harbor④查看Harbor启动镜像⑤创建一个新项目三.维护管理Harbor1... 查看详情

docker-----私有仓库和hub仓库(代码片段)

目录前言一.本地私有仓库的搭建1.本地私有仓库的加密2.本地私有仓库的加密和认证二.Hub仓库1.搭建Hub仓库2.Hub仓库的扫描3.Hub仓库的签名前言有私有和共有仓库,仓库本质:存放景象,认证+景象层的数据类私有仓... 查看详情

docker—搭建本地私有仓库(代码片段)

docker一、准备工作1.1下载registry镜像1.2添加镜像仓库地址二、开启容器三、测试3.1为镜像打标签3.2上传到私有的仓库3.3删除现有镜像,重新下载一、准备工作1.1下载registry镜像dockerpullregistry1.2添加镜像仓库地址在daemon.json文件... 查看详情

docker(4)搭建私有镜像仓库(代码片段)

【Docker】(4)搭建私有镜像仓库说明1、这里是通过阿里云,搭建Docker私有镜像仓库。2、这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能一、搭建过程首先进入阿里云创建镜像仓库:https://dev.aliyun.... 查看详情

docker私有仓库搭建和资源限制(代码片段)

Docker私有仓库的搭建   docker私有仓库默认只支持https协议的访问 不支持http协议如果需要允许通过http协议访问必须手动修改配置文件   docker官方默认提供的仓库 提供软件包docker-distribution由python开发... 查看详情