织梦网站上传步骤,合肥网络seo,wordpress下一页,绘图软件有哪些Harbor构建Docker私有仓库 文章目录 Harbor构建Docker私有仓库资源列表一、部署Docker-Compose服务1.1、下载最新Docker-Compose1.2、查看Docker-Compose版本 二、部署Harbor服务2.1、下载Harbor安装程序2.2、配置Harbor参数文件2.3、所需参数和可选参数2.3.1、所需参数2.3.2、…Harbor构建Docker私有仓库 文章目录 Harbor构建Docker私有仓库资源列表一、部署Docker-Compose服务1.1、下载最新Docker-Compose1.2、查看Docker-Compose版本 二、部署Harbor服务2.1、下载Harbor安装程序2.2、配置Harbor参数文件2.3、所需参数和可选参数2.3.1、所需参数2.3.2、可选参数  三、启动Harbor四、查看Harbor启动镜像五、访问私有仓库六、创建一个新项目七、登录Harbor推送镜像7.1、登录Harbor7.2、下载镜像进行测试7.3、将镜像打标签7.4、上传镜像到Harbor7.5、Web-Harbor界面查看 八、客户端上传镜像8.1、解决办法8.2、再次登录Harbor8.3、下载镜像进行测试8.4、将镜像打标签8.5、查看Harbor的Web管理界面 九、Harbor日常操作管理9.1、通过Harbor Web创建项目9.2、创建Harbor用户9.2.1、创建用户并分配权限9.2.2、添加项目成员9.2.3、在客户端上使用普通账号操作镜像 9.3、查看日志 十、维护管理Harbor10.1、停止/启动/重启 Harbor10.2、修改Harbor.yml配置文件10.3、移除Harbor服务容器同时保留镜像数据/数据库10.4、如须重新部署需要移除Harbor服务容器全部数据 备注  资源列表 
操作系统配置主机名IP所需软件CentOS 7.92C4Gharbor192.168.93.165docker 26.1.2docker-composeharbor-offline-v1.1.2CentOS 7.92C4Gclient192.168.93.166docker 26.1.2 
关闭防火墙 
systemctl stop firewalld
systemctl disable firewalld关闭内核安全机制 
setenforce 0
sed -i s/^SELINUX.*/SELINUXdisabled/g /etc/selinux/config修改主机名 
hostnamectl set-hostname harbor
hostnamectl set-hostname client一、部署Docker-Compose服务 
部署Harbor是需要Docker-Compose服务做支撑的所以先部署该服务 
1.1、下载最新Docker-Compose 
# 下载阿里云docker-compose二进制文件
[rootharbor ~]# curl -L https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
# 添加可执行权限
[rootharbor ~]# chmod x /usr/local/bin/docker-compose1.2、查看Docker-Compose版本 
[rootharbor ~]# docker-compose -v
docker-compose version 1.21.2, build a133471二、部署Harbor服务 
Harbor被部署为多个Docker容器因此可以部署在任何支持Docker的Linux发行版上。服务端主机需要安装Python、Docker和Docker Compose 
2.1、下载Harbor安装程序 
[rootharbor ~]# yum -y install wget
[rootharbor ~]# wget https://github.com/goharbor/harbor/releases/download/v2.6.1/harbor-offline-installer-v2.6.1.tgz
[rootharbor ~]# tar -zxvf harbor-offline-installer-v2.0.2.tgz -C /usr/local/2.2、配置Harbor参数文件 
# 拷贝一份Harbor的配置文件
[rootharbor ~]# cp /usr/local/harbor/harbor.yml.tmpl /usr/local/harbor/harbor.yml
[rootharbor ~]# vim /usr/local/harbor/harbor.yml
# 修改hostname修改为自己的IP地址
hostname: 192.168.93.165
# 将https段的内容全部注释这里不使用https访问
#################################################################https:# https port for harbor, default is 443#port: 443# The path of cert and key files for nginx#certificate: /your/certificate/path#private_key: /your/private/key/path################################################################# 对配置文件进行语法检查,将会自动拉取必要的镜像
[rootharbor ~]# /usr/local/harbor/prepare2.3、所需参数和可选参数 
2.3.1、所需参数 
这些参数需要在配置文件Harbor.yml中设置。如果用户更新他们并运行install.sh脚本重新安装Harbor参数将生效 
1、hostname用于访问用户界面和register服务。他应该是目标机器的IP地址或完全限定域名FQDN,例如192.168.93.165或hun.kgc.cn。不要使用localhost或172.0.0.12.ui_rul_protocolhttp或httpds默认为http用于访问UI和令牌/通知服务的协议。如果公证处于启用状态则此参数必须为https3.max_job_workers镜像复制作业线程4.db_password用于db_auth的MySQL数据库root用户的密码5.customize_crt该属性可设置为打开或关闭默认打开打开此属性时准备脚本创建私钥和根整数用于生成/验证注册表令牌。当由外部来源提供密钥和根证书时将此属性设置为off6.ssl_certSSL证书的路路径仅当协议设置为https时采应用7.ssl_cert_keySSL密钥的路径仅当协议设置为https时才应用8.secretkey_path用于在复制策略中加密或解密远程register密码的的密钥路径2.3.2、可选参数 
这些参数对于更新是可选的即用户可以将其保留位默认值并在启动Harbor后在Web UI上进行更新。如果进入Harbor.yml只会在第一次启动Harbor时生效随后对这些参数的更新Harbor.yml将被忽略注意如果选择通过UI设置这些参数请确保在启动Harbour后立即执行此操作。具体来说必须在测试或在Harbor中创建任何新用户之前设置所需的auth_mode。当系统中有用户时除了默认的admin用户auth_mode不能被修改另外默认情况下Harbour将镜像存储在本地文件系统上。在生产环境中可以考虑使用其他存储后端而不是本地文件系统如S3、Openstack Swif、Ceph等。但需要更新common/templates/registry/config.yml文件 
1.EmailHarbor需要该参数才能向用户发送“密码重置”并且只有在需要该功能时才需要。请注意在默认情况下SSL连接时没有启动。如果SMTP服务器需要SSL但不支持StartLS那么应该通过设置启动SSL email_ssl  TRUE2.harbour_admin_password管理员的处理密码只在Harbour第一次启动时生效。之后此设置将被忽略并且应在UI设置管理员的密码。请注意默认的用户名/密码时admin/Harbor123453.auth_mode使用的认证类型默认情况下它时db_auth即凭据存储在数据库中对于LADP身份验证请将其设置位ldap_auth4.seif_registration启动/禁用用户注册功能。禁用时新用户只能由Admin用户创建只有管理员用户可以在Harbor中创建新用户。注意当auth_mode设置为ldap_auth时自动注册功能始终处理禁用状态并且该标志被忽略5.Token_enpiration由令牌服务创建的令牌的到期时间分钟默认位30分钟6.project_creation_restriction用于控制哪些用户的权限项目的标志。默认情况下每个人都可以创建项目。如果将其设置位adminonly那么只有admin可以创建项目7.verify_remote_cert打开或关闭默认打开。此标志决定了当Harbour与远程register实例通信时是否验证SSL/TLS证书。将此属性设置为off将绕过SSL/TLS验证这在远程实例具有自签名或不可信证书时经常使用。三、启动Harbor 
# 需要一点时间等待安装回显结束即可
[rootharbor ~]# sh /usr/local/harbor/install.sh四、查看Harbor启动镜像 
[rootharbor ~]# cd /usr/local/harbor/
[rootharbor harbor]# docker-compose psName                     Command                  State                      Ports                
--------------------------------------------------------------------------------------------------------
harbor-core         /harbor/entrypoint.sh            Up (healthy)                                       
harbor-db           /docker-entrypoint.sh            Up (healthy)   5432/tcp                            
harbor-jobservice   /harbor/entrypoint.sh            Up (healthy)                                       
harbor-log          /bin/sh -c /usr/local/bin/ ...   Up (healthy)   127.0.0.1:1514-10514/tcp           
harbor-portal       nginx -g daemon off;             Up (healthy)   8080/tcp                            
nginx               nginx -g daemon off;             Up (healthy)   0.0.0.0:80-8080/tcp,:::80-8080/tcp
redis               redis-server /etc/redis.conf     Up (healthy)   6379/tcp                            
registry            /home/harbor/entrypoint.sh       Up (healthy)   5000/tcp                            
registryctl         /home/harbor/start.sh            Up (healthy) 五、访问私有仓库 
访问地址http://192.168.93.165用户名admin密 码Harbor12345  
六、创建一个新项目 在WEB UI界面创建新项目的操作步骤如下。  输入用户名和面膜登录界面后可以创建一个新项目。点击“新建项目”按钮   填写项目名称为“myproject-kgc”   点击“确定”按钮成功创建新项目后页面效果如下   此时可使用Docker命令在本地通过127.0.0.1来登录和推送镜像。默认情况下Register服务器在端口80上侦听  
七、登录Harbor推送镜像 
7.1、登录Harbor 
[rootharbor ~]# 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 Succeeded7.2、下载镜像进行测试 
[rootharbor ~]# docker pull cirros7.3、将镜像打标签 
# push上传镜像必须要以以下格式进行打标签
# 格式私有仓库IP地址/项目名称/镜像标签
[rootharbor ~]# docker tag cirros:latest 127.0.0.1/myproject-kgc/cirros:v17.4、上传镜像到Harbor 
[rootharbor ~]# docker push 127.0.0.1/myproject-kgc/cirros:v1 
The push refers to repository [127.0.0.1/myproject-kgc/cirros]
d8083b07a8e2: Pushed 
b42b2edd1b7f: Pushed 
032cc20cbfb2: Pushed 
v1: digest: sha256:d573d48afdade1ef2c5bba38681e8c8ce0794e985409e7d5c35a2c3653c547aa size: 9437.5、Web-Harbor界面查看 
在harbor界面myproject-kgc目录下可看见此镜像及相关信息点击项目名称超链接即可看到如下信息  
八、客户端上传镜像 
以上操作都是在Harbor服务器本地操作。如果其他客户端上传镜像到Harbor就会报错误。出现这问题的原因Docker Registry交互默认使用的是HTTPS但是搭建私有镜像默认使用的是HTTP。所以与私有镜像交互时就会报错如下内容 
[rootclient ~]# docker login -u admin -p Harbor12345 http://192.168.93.165
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://192.168.93.165/v2/: dial tcp 192.168.93.165:443: connect: connection refused8.1、解决办法 
在Docker客户端配置操作解决办法是在Docker server启动的时候增加启动参数默认使用HTTP访问 
# 解决办法1
[rootclient ~]# vim /usr/lib/systemd/system/docker.service
ExecStart/usr/bin/dockerd --insecure-registry 192.168.93.165
[rootclient ~]# systemctl daemon-reload 
[rootclient ~]# systemctl restart docker# 解决办法2
cat  /etc/docker/daemon.json  EOF
{# 这个是修改为国内的镜像源使用国内的源访问速度会快一点registry-mirrors: [https://r9xxm8z8.mirror.aliyuncs.com],# 指定私有仓库IP地址insecure-registries:[192.168.93.156]
}
EOF
[rootclient ~]# systemctl daemon-reload 
[rootclient ~]# systemctl restart docker.service 8.2、再次登录Harbor 
[rootclient ~]# docker login -u admin -p Harbor12345 http://192.168.93.165
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 Succeeded8.3、下载镜像进行测试 
[rootclient ~]# docker pull nginx8.4、将镜像打标签 
将镜像打标签上传到myproject-kgc项目里面 
[rootclient ~]# docker tag nginx:latest 192.168.93.165/myproject-kgc/nginx:v1# 上传镜像
[rootclient ~]# docker push 192.168.93.165/myproject-kgc/nginx:v18.5、查看Harbor的Web管理界面 
myproject-kgc项目里面有两个镜像  
九、Harbor日常操作管理 
在Harbor仓库中任何镜像在被push到registry之前都必须有一个自己所属的项目 
9.1、通过Harbor Web创建项目 
单击“新建项目”填写项目名称。本案例中项目级别为“公有”则所有对此项目下的镜像拥有读权限命令行中不需要执行“Docker login”即可下载镜像镜像操作与Docker Hub一致 
9.2、创建Harbor用户 
9.2.1、创建用户并分配权限 在Web管理界面中单击系统管理-》用户管理-》创建用户填写用户名为“kgc-user01”邮箱为kgc-user01kgc.cn全名为“课超新人”密码为“A123a456”注释为“管理员”   用户创建成功后单击左侧“…”按钮可将上述创建的用户设置为管理员角色或进行删除操作。本案例不做任何设置   
9.2.2、添加项目成员 单击项目-》myproject-kgc-》成员-》成员填写上述创建的用户并分配角色为“开发人员”   此时单击左侧“…”按钮仍然可以对成员角色进行变更或者删除操作   
9.2.3、在客户端上使用普通账号操作镜像 
1、删除上述打标签的本地镜像 
[rootclient ~]# docker rmi 192.168.93.165/myproject-kgc/nginx:v12、先退出当前用户然后使用上述创建的用户kgc-user01登录 
# 退出账号
[rootclient ~]# docker logout 192.168.93.165
Removing login credentials for 192.168.93.165# 登录账号
[rootclient ~]# docker login -u kgc-user01 -p A123a456 http://192.168.93.165
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 
3、下载服务器192.168.93.165/myproject-kgc/nginx标签为v1的镜像 
[rootclient ~]# docker pull 192.168.93.165/myproject-kgc/nginx:v1
v1: Pulling from myproject-kgc/nginx
09f376ebb190: Pull complete 
5529e0792248: Pull complete 
9b3addd3eb3d: Pull complete 
57910a8c4316: Pull complete 
7b5f78f21449: Pull complete 
b7923aa4e8a6: Pull complete 
785625911f12: Pull complete 
Digest: sha256:0db204f933b6d1def0c0c15578f61a80091f8316b04150918413fc4d5c87be69
Status: Downloaded newer image for 192.168.93.165/myproject-kgc/nginx:v1
192.168.93.165/myproject-kgc/nginx:v19.3、查看日志 
Web界面日志操作日志按时间顺序记录用户相关操作点击“myproject-kgc”超链接即可进入此页面  
十、维护管理Harbor 
可以使用docker-compose管理Harbor。一些有用的命令如下所示必须在与docker-compose.yml相同的目录中运行 
10.1、停止/启动/重启 Harbor 
[rootharbor ~]# cd /usr/local/harbor/
[rootharbor harbor]# docker-compose stop | start | restart10.2、修改Harbor.yml配置文件 
要更改Harbour的配置文件时请先停止现有的Harbour实例并更新harbor.yml然后运行prepare脚本来填充配置最后重新创建并启动Harbour的实例如上文所说如修改所需参数需要重新运行install.sh如修改可选参数则需运行脚本 ./prepare 将配置文件内容进行重新生效 
[rootharbor harbor]# docker-compose down -v
Stopping harbor-jobservice ... done
Stopping nginx             ... done
Stopping harbor-core       ... done
Stopping harbor-portal     ... done
Stopping redis             ... done
Stopping registryctl       ... done
Stopping registry          ... done
Stopping harbor-db         ... done
Stopping harbor-log        ... done
Removing harbor-jobservice ... done
Removing nginx             ... done
Removing harbor-core       ... done
Removing harbor-portal     ... done
Removing redis             ... done
Removing registryctl       ... done
Removing registry          ... done
Removing harbor-db         ... done
Removing harbor-log        ... done
Removing network harbor_harbor
[rootharbor harbor]# ./prepare 
[rootharbor harbor]# docker-compose up -d10.3、移除Harbor服务容器同时保留镜像数据/数据库 
# 这条命令将停止和移除Docker Compose中定义的所有容器并且会同时删除关联的所有卷。 -v选项表示同时删除所有卷。
[rootharbor harbor]# docker-compose up -d10.4、如须重新部署需要移除Harbor服务容器全部数据 
持久数据如镜像数据库等在宿主机的/data/目录下日志在宿主机的/var/log/Harbor/目录下 
[rootharbor ~]# rm -rf /data/database/
[rootharbor ~]# rm -rf /data/registry/备注 
# 目前微服务架构也在潜移默化的改变应用的部署方式其提倡将应用分割成一系列细小的服务每个服务专注于单一业务功能服务之间采用轻量级通信机制相互沟通。同时数据库解决方案也在发生变化多种持久化混合方案提倡将数据存放在最适合的数据库解决方案中而传统的数据库解决方案将数据存放在同一个数据库服务中# 服务数量的增加也就意味着容器数量的增多逐渐增加的容器数量为容器部署、运行及管理带来了挑战。Docker Compose的出现解决多个容器部署的问题并提高了多个容器解决方案的可移植性# Docker官方镜像仓库是一个用于管理公共镜像的地方用户可以在上面找到想要的镜像也可以把自己的镜像推送上去。但是有时候服务器无法访问互联网或者不希望自己的镜像放到互联网上那么九需要用到Docker Registry私有仓库它咳哟用来存储和管理自己的镜像。