怎样做无水印视频网站,达州高端网站建设,廊坊网站制作服务,免费印章logo在线制作简介
Docker私有仓库Harbor是一个开源的、企业级的Docker registry解决方案#xff0c;它提供了安全、可靠和高效的容器镜像存储和分发服务。以下是关于Docker私有仓库Harbor的详细介绍#xff1a;
一、Harbor的特点 基于角色的访问控制#xff08;RBAC#xff09;#…简介
Docker私有仓库Harbor是一个开源的、企业级的Docker registry解决方案它提供了安全、可靠和高效的容器镜像存储和分发服务。以下是关于Docker私有仓库Harbor的详细介绍
一、Harbor的特点 基于角色的访问控制RBACHarbor支持基于角色的权限控制可以为用户和团队分配不同的权限确保容器镜像的安全访问。 镜像复制Harbor支持跨多个Harbor实例之间的镜像复制可以实现高可用性和负载均衡确保容器镜像的可靠分发。 LDAP/AD支持Harbor可以与现有的LDAP/AD系统集成实现用户认证和权限管理方便企业内部用户的使用。 镜像删除和垃圾回收Harbor支持镜像的删除和垃圾回收可以释放存储空间避免资源的浪费。 图形化用户界面Harbor提供了直观、易用的图形化用户界面方便用户浏览、搜索和管理容器镜像。 审计管理Harbor支持审计管理功能可以记录所有针对容器镜像的操作确保操作的合规性和可追溯性。 RESTful API支持Harbor提供了RESTful API接口方便管理员和其他系统对Harbor进行集成和管理。
二、Harbor的架构
Harbor的架构主要由以下几个组件组成 Proxy反向代理组件负责将来自浏览器、Docker客户端等的请求转发到后端服务上。 RegistryDocker registry服务负责存储和分发容器镜像。 UI图形化用户界面提供浏览、搜索和管理容器镜像的功能。 Token Service负责生成和管理访问令牌用于验证客户端的访问权限。 Database数据库组件用于存储用户、项目、镜像等元数据。 Job Service后台任务处理组件负责执行镜像复制、垃圾回收等任务。
三、Harbor的部署和管理
Harbor的部署和管理相对简单可以通过Docker Compose进行快速部署。在部署之前需要准备好相应的环境包括Docker环境、数据库等。部署完成后可以通过图形化用户界面进行容器镜像的管理和操作。Harbor还提供了丰富的配置选项和API接口方便管理员进行定制化和集成。
总之Docker私有仓库Harbor是一个功能强大、易于部署和管理的企业级Docker registry解决方案适用于各种规模和类型的企业和组织。
环境
redhat 9.2 192.168.200.133
Harbor版本2.9.4
步骤
安装docker
[rootdokcer ~]# yum -y install yum-utils.noarch
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。AppStream 3.1 MB/s | 3.2 kB 00:00
BaseOS 2.7 MB/s | 2.7 kB 00:00
依赖关系解决。
软件包 架构 版本 仓库 大小安装:yum-utils noarch 4.3.0-5.el9_2 BaseOS 45 k
省略 。 。 。 。 。 。 。 。 。
[rootdokcer ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。添加仓库自http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[rootdokcer ~]# yum clean all yum makecache
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。13 个文件已删除
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。Docker CE Stable - x86_64 62 kB/s | 46 kB 00:00
AppStream 164 MB/s | 6.3 MB 00:00
BaseOS 109 MB/s | 1.7 MB 00:00
元数据缓存已建立。
[rootdokcer ~]#
[rootdokcer ~]# yum -y install docker-ce*
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查0:00:51 前执行于 2024年05月11日 星期六 16时26分54秒。
依赖关系解决。
软件包 架构 版本 仓库 大小安装:docker-ce x86_64 3:26.1.2-1.el9 docker-ce-stable 27 Mdocker-ce-cli x86_64 1:26.1.2-1.el9 docker-ce-stable 7.8 Mdocker-ce-rootless-extras x86_64 26.1.2-1.el9 docker-ce-stable 4.0 M
安装依赖关系:containerd.io x86_64 1.6.31-3.1.el9 docker-ce-stable 34 M
安装弱的依赖:docker-buildx-plugin x86_64 0.14.0-1.el9 docker-ce-stable 13 Mdocker-compose-plugin x86_64 2.27.0-1.el9 docker-ce-stable 13 M事务概要
省略 。 。 。 。 。 。 镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json -EOF
{registry-mirrors: [https://7f40piyw.mirror.aliyuncs.com]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装compose
[rootdokcer ~]# yum update yum install docker-compose-plugin
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查0:08:25 前执行于 2024年05月11日 星期六 16时26分54秒。
依赖关系解决。
无需任何处理。
完毕
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查0:08:25 前执行于 2024年05月11日 星期六 16时26分54秒。
软件包 docker-compose-plugin-2.27.0-1.el9.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕
[rootdokcer ~]# docker compose version
Docker Compose version v2.27.0下载harbor的安装包
在GitHub上下载harbor的安装包此包由harbor官网提供Releases · goharbor/harbor (github.com) 在浏览器直接下载之后导入到虚拟机里面因为虚拟机里下载太慢了 装一个传输工具
[rootdokcer ~]# yum -y install lrzsz.x86_64 传输完成后查看并将其解压
[rootdokcer ~]# ls
公共 视频 文档 音乐 anaconda-ks.cfg
模板 图片 下载 桌面 harbor-offline-installer-v2.9.4.tgz
[rootdokcer ~]#
[rootdokcer ~]# tar -xvf harbor-offline-installer-v2.9.4.tgz -C /usr/local/
harbor/harbor.v2.9.4.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
[rootdokcer ~]#
用OpenSSL生成一份SSL证书
[rootdokcer ~]# yum -y install mod_ssl.x86_64 openssl
正在更新 Subscription Management 软件仓库。
无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。上次元数据过期检查0:49:04 前执行于 2024年05月11日 星期六 18时26分11秒。
软件包 openssl-1:3.0.7-6.el9_2.x86_64 已安装。
依赖关系解决。#生成一个自签名证书创建一个存放目录 /private
[rootdokcer ~]# mkdir private
[rootdokcer ~]# openssl genrsa -out ./private/ca.key 2048#生成证书签名请求CSR
[rootdokcer ~]# openssl req -new -key ./private/ca.key -out ./private/ca.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ., the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your servers hostname) []:
Email Address []:Please enter the following extra attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:#生成X509自签名证书
[rootdokcer ~]# openssl req -new -x509 -key ./private/ca.key -out ./private/ca.crt -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ., the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your servers hostname) []:
Email Address []:
[rootdokcer ~]#
配置harbor参数文件 [rootdokcer ~]# cd /usr/local/harbor/
[rootdokcer harbor]# vim harbor.yml.tmpl 1 # Configuration file of Harbor2 3 # The IP address or hostname to access admin UI and registry service.4 # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.5 hostname: 192.168.200.133 //此行改成自己的ip地址6 7 # http related config8 http:9 # port for http, default is 80. If https enabled, this port will redirect to https port10 port: 8011 12 # https related config13 https:14 # https port for harbor, default is 44315 port: 44316 # The path of cert and key files for nginx17 certificate: /root/private/ca.crt //替换为 SSL 证书文件的路径 18 private_key: /root/private/ca.key //替换为 SSL 私钥文件的路径 启动harbor服务
/usr/local/harbor/install.sh
复制一份harbor.yml.tml文件改名为harbor.yml因为启动需要用到
[rootdokcer harbor]# cp harbor.yml.tmpl harbor.yml
[rootdokcer harbor]# bash /usr/local/harbor/install.sh[Step 0]: checking if docker is installed ...Note: docker version: 26.1.2[Step 1]: checking docker-compose is installed ...Note: Docker Compose version v2.27.0[Step 2]: loading Harbor images ...
Loaded image: goharbor/nginx-photon:v2.9.4
Loaded image: goharbor/trivy-adapter-photon:v2.9.4
Loaded image: goharbor/harbor-portal:v2.9.4
Loaded image: goharbor/harbor-core:v2.9.4
Loaded image: goharbor/harbor-log:v2.9.4
Loaded image: goharbor/harbor-jobservice:v2.9.4
Loaded image: goharbor/harbor-exporter:v2.9.4
Loaded image: goharbor/prepare:v2.9.4
Loaded image: goharbor/harbor-db:v2.9.4
Loaded image: goharbor/harbor-registryctl:v2.9.4
Loaded image: goharbor/redis-photon:v2.9.4
Loaded image: goharbor/registry-photon:v2.9.4[Step 3]: preparing environment ...[Step 4]: preparing harbor configs ...
prepare base dir is set to /usr/local/harbor
Generated configuration file: /config/portal/nginx.conf
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
Generated and saved secret to file: /data/secret/keys/secretkey
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dirNote: stopping existing Harbor instance ...
WARN[0000] /usr/local/harbor/docker-compose.yml: version is obsolete [Step 5]: starting Harbor ...
WARN[0000] /usr/local/harbor/docker-compose.yml: version is obsolete
[] Running 10/10✔ Network harbor_harbor Created 0.4s ✔ Container harbor-log Started 0.8s ✔ Container harbor-portal Started 2.7s ✔ Container harbor-db Started 3.2s ✔ Container registryctl Started 3.1s ✔ Container redis Started 3.1s ✔ Container registry Started 2.7s ✔ Container harbor-core Started 3.7s ✔ Container harbor-jobservice Started 4.9s ✔ Container nginx Started 5.5s
✔ ----Harbor has been installed and started successfully.----
[rootdokcer harbor]#
查看harbor启动镜像
[rootdokcer harbor]# docker compose ps
WARN[0000] /usr/local/harbor/docker-compose.yml: version is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
harbor-core goharbor/harbor-core:v2.9.4 /harbor/entrypoint.… core About a minute ago Up About a minute (healthy)
harbor-db goharbor/harbor-db:v2.9.4 /docker-entrypoint.… postgresql About a minute ago Up About a minute (healthy)
harbor-jobservice goharbor/harbor-jobservice:v2.9.4 /harbor/entrypoint.… jobservice About a minute ago Up 58 seconds (healthy)
harbor-log goharbor/harbor-log:v2.9.4 /bin/sh -c /usr/loc… log About a minute ago Up About a minute (healthy) 127.0.0.1:1514-10514/tcp
harbor-portal goharbor/harbor-portal:v2.9.4 nginx -g daemon of… portal About a minute ago Up About a minute (healthy)
nginx goharbor/nginx-photon:v2.9.4 nginx -g daemon of… proxy About a minute ago Up About a minute (healthy) 0.0.0.0:80-8080/tcp, :::80-8080/tcp, 0.0.0.0:443-8443/tcp, :::443-8443/tcp
redis goharbor/redis-photon:v2.9.4 redis-server /etc/r… redis About a minute ago Up About a minute (healthy)
registry goharbor/registry-photon:v2.9.4 /home/harbor/entryp… registry About a minute ago Up About a minute (healthy)
registryctl goharbor/harbor-registryctl:v2.9.4 /home/harbor/start.… registryctl About a minute ago Up About a minute (healthy)
[rootdokcer harbor]#
浏览器访问 默认的管理员用户名和密码分别为admin和Harbor12345 创建一个新项目登录成功后创建一个新的项目 创建好之后出现了一个新的项目 此时可以使用docker 命令在本地通过127.0.0.1 来登录和推送镜像。默认register服务器端口80侦听。
[rootdokcer ~]# docker login -u admin -p Harbor12345 http://127.0.0.1
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-storeLogin Succeeded
[rootdokcer ~]#
下载镜像进行测试
[rootdokcer ~]# docker pull cirros
Using default tag: latest
latest: Pulling from library/cirros
d0b405be7a32: Pull complete
bd054094a037: Pull complete
c6a00de1ec8a: Pull complete
Digest: sha256:1e695eb2772a2b511ccab70091962d1efb9501fdca804eb1d52d21c0933e7f47
Status: Downloaded newer image for cirros:latest
docker.io/library/cirros:latest
[rootdokcer ~]#
[rootdokcer ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
goharbor/harbor-exporter v2.9.4 2d73f8aa1dae 3 weeks ago 106MB
goharbor/redis-photon v2.9.4 cdc8364c58be 3 weeks ago 165MB
goharbor/trivy-adapter-photon v2.9.4 c2450773e2e6 3 weeks ago 504MB
goharbor/harbor-registryctl v2.9.4 309a9ce74755 3 weeks ago 149MB
goharbor/registry-photon v2.9.4 fd9a212aba2d 3 weeks ago 83.5MB
goharbor/nginx-photon v2.9.4 7d707a6be242 3 weeks ago 153MB
goharbor/harbor-log v2.9.4 43c3b30c4d6b 3 weeks ago 163MB
goharbor/harbor-jobservice v2.9.4 32cace7c28c0 3 weeks ago 140MB
goharbor/harbor-core v2.9.4 c69d87c3277b 3 weeks ago 168MB
goharbor/harbor-portal v2.9.4 ccec0edebddc 3 weeks ago 161MB
goharbor/harbor-db v2.9.4 ef215f05a8a0 3 weeks ago 269MB
goharbor/prepare v2.9.4 e958fd04a56e 3 weeks ago 206MB
cirros latest f9cae1daf5f6 3 years ago 12.6MB
[rootdokcer ~]#
将镜像打上标签为V1并查看是否成功
随后上传镜像到harbor
[rootdokcer ~]# docker tag cirros:latest 127.0.0.1/my123/cirros:v1
[rootdokcer ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
goharbor/harbor-exporter v2.9.4 2d73f8aa1dae 3 weeks ago 106MB
goharbor/redis-photon v2.9.4 cdc8364c58be 3 weeks ago 165MB
goharbor/trivy-adapter-photon v2.9.4 c2450773e2e6 3 weeks ago 504MB
goharbor/harbor-registryctl v2.9.4 309a9ce74755 3 weeks ago 149MB
goharbor/registry-photon v2.9.4 fd9a212aba2d 3 weeks ago 83.5MB
goharbor/nginx-photon v2.9.4 7d707a6be242 3 weeks ago 153MB
goharbor/harbor-log v2.9.4 43c3b30c4d6b 3 weeks ago 163MB
goharbor/harbor-jobservice v2.9.4 32cace7c28c0 3 weeks ago 140MB
goharbor/harbor-core v2.9.4 c69d87c3277b 3 weeks ago 168MB
goharbor/harbor-portal v2.9.4 ccec0edebddc 3 weeks ago 161MB
goharbor/harbor-db v2.9.4 ef215f05a8a0 3 weeks ago 269MB
goharbor/prepare v2.9.4 e958fd04a56e 3 weeks ago 206MB
127.0.0.1/my123/cirros v1 f9cae1daf5f6 3 years ago 12.6MB
cirros latest f9cae1daf5f6 3 years ago 12.6MB
[rootdokcer ~]#
[rootdokcer ~]# docker push 127.0.0.1/my123/cirros:v1 //上传到my123项目中
The push refers to repository [127.0.0.1/my123/cirros]
984ad441ec3d: Pushed
f0a496d92efa: Pushed
e52d19c3bee2: Pushed
v1: digest: sha256:483f15ac97d03dc3d4dcf79cf71ded2e099cf76c340f3fdd0b3670a40a198a22 size: 943
[rootdokcer ~]# 刷浏览器页面进入查看是否有此镜像 文章转载自: http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn http://www.morning.tsynj.cn.gov.cn.tsynj.cn http://www.morning.sbrpz.cn.gov.cn.sbrpz.cn http://www.morning.hjjfp.cn.gov.cn.hjjfp.cn http://www.morning.dxhdn.cn.gov.cn.dxhdn.cn http://www.morning.zkrzb.cn.gov.cn.zkrzb.cn http://www.morning.mlwpr.cn.gov.cn.mlwpr.cn http://www.morning.ytbr.cn.gov.cn.ytbr.cn http://www.morning.jsphr.cn.gov.cn.jsphr.cn http://www.morning.syglx.cn.gov.cn.syglx.cn http://www.morning.cpgdy.cn.gov.cn.cpgdy.cn http://www.morning.bfmrq.cn.gov.cn.bfmrq.cn http://www.morning.bssjp.cn.gov.cn.bssjp.cn http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn http://www.morning.nrzkg.cn.gov.cn.nrzkg.cn http://www.morning.xpqyf.cn.gov.cn.xpqyf.cn http://www.morning.kqglp.cn.gov.cn.kqglp.cn http://www.morning.brnwc.cn.gov.cn.brnwc.cn http://www.morning.dljujia.com.gov.cn.dljujia.com http://www.morning.monstercide.com.gov.cn.monstercide.com http://www.morning.tsqpd.cn.gov.cn.tsqpd.cn http://www.morning.zypnt.cn.gov.cn.zypnt.cn http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn http://www.morning.btrfm.cn.gov.cn.btrfm.cn http://www.morning.c7496.cn.gov.cn.c7496.cn http://www.morning.clpdm.cn.gov.cn.clpdm.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.jcrfm.cn.gov.cn.jcrfm.cn http://www.morning.ygkk.cn.gov.cn.ygkk.cn http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn http://www.morning.bmlcy.cn.gov.cn.bmlcy.cn http://www.morning.gghhmi.cn.gov.cn.gghhmi.cn http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn http://www.morning.tjmfz.cn.gov.cn.tjmfz.cn http://www.morning.qkqjz.cn.gov.cn.qkqjz.cn http://www.morning.cpwmj.cn.gov.cn.cpwmj.cn http://www.morning.qbtj.cn.gov.cn.qbtj.cn http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn http://www.morning.hfytgp.cn.gov.cn.hfytgp.cn http://www.morning.lpcct.cn.gov.cn.lpcct.cn http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn http://www.morning.qwdlj.cn.gov.cn.qwdlj.cn http://www.morning.rfqk.cn.gov.cn.rfqk.cn http://www.morning.ltkms.cn.gov.cn.ltkms.cn http://www.morning.trrpb.cn.gov.cn.trrpb.cn http://www.morning.rpwht.cn.gov.cn.rpwht.cn http://www.morning.nmhpq.cn.gov.cn.nmhpq.cn http://www.morning.ghxtk.cn.gov.cn.ghxtk.cn http://www.morning.skksz.cn.gov.cn.skksz.cn http://www.morning.cklgf.cn.gov.cn.cklgf.cn http://www.morning.hnhkz.cn.gov.cn.hnhkz.cn http://www.morning.lsgjf.cn.gov.cn.lsgjf.cn http://www.morning.krkwp.cn.gov.cn.krkwp.cn http://www.morning.gcfrt.cn.gov.cn.gcfrt.cn http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn http://www.morning.dycbp.cn.gov.cn.dycbp.cn http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn http://www.morning.rdtq.cn.gov.cn.rdtq.cn http://www.morning.tsxg.cn.gov.cn.tsxg.cn http://www.morning.rbnp.cn.gov.cn.rbnp.cn http://www.morning.lmtbl.cn.gov.cn.lmtbl.cn http://www.morning.wqgr.cn.gov.cn.wqgr.cn http://www.morning.ntqqm.cn.gov.cn.ntqqm.cn http://www.morning.tpnch.cn.gov.cn.tpnch.cn http://www.morning.cyfsl.cn.gov.cn.cyfsl.cn http://www.morning.kqfdrqb.cn.gov.cn.kqfdrqb.cn http://www.morning.sbczr.cn.gov.cn.sbczr.cn http://www.morning.krhkn.cn.gov.cn.krhkn.cn http://www.morning.djpps.cn.gov.cn.djpps.cn http://www.morning.hxlch.cn.gov.cn.hxlch.cn http://www.morning.ynrzf.cn.gov.cn.ynrzf.cn http://www.morning.nzqqd.cn.gov.cn.nzqqd.cn http://www.morning.sftrt.cn.gov.cn.sftrt.cn http://www.morning.pxbrg.cn.gov.cn.pxbrg.cn http://www.morning.tslwz.cn.gov.cn.tslwz.cn http://www.morning.gkgr.cn.gov.cn.gkgr.cn http://www.morning.kpxzq.cn.gov.cn.kpxzq.cn http://www.morning.wgxtz.cn.gov.cn.wgxtz.cn http://www.morning.bfybb.cn.gov.cn.bfybb.cn