Docker harbor私有仓库部署与管理-3

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Docker harbor私有仓库部署与管理

4.6 在其他客户端上传镜像

以上操作都是在 Harbor 服务器本地操作。如果其他客户端登录到 Harbor,就会报如下错误。出现这问题的原因为Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。


docker login -u admin -p Harbor12345 http://192.168.147.105
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://192.168.147.105/v2/: dial tcp 192.168.147.105:443: connect: connection refused

72a050b70a7c4f5e8619d5b604e12574.png


(1)在 Docker 客户端配置操作

//解决办法是:在 Docker server 启动的时候,增加启动参数,默认使用 HTTP 访问。
vim /usr/lib/systemd/system/docker.service
--13行--修改
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.147.105 --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.147.105

44bc29f910114ebe8c3e5fa67256c7a0.png


//重启 Docker,再次登录
systemctl daemon-reload
systemctl restart docker
//再次登录 Harbor
docker login -u admin -p Harbor12345 http://192.168.147.105
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/.docker/config.json,下次登录时可直接使用凭据登录 Harbor


047bd481556241ec9177d2e26d4e2e25.png


//下载镜像进行测试
docker pull 192.168.147.105/myproject-01/nginx:v1

eba921526899492a92f61d8602006c92.png


//上传镜像进行测试
docker pull cirros
docker tag cirros:latest 192.168.147.105/myproject-01/cirros:v2
docker push 192.168.147.105/myproject-01/cirros:v2

8fae36b4c8bf4d8a8e09db417064cce3.png


(2)刷新 Harbor 的 Web 管理界面进行查看,会发现 myproject-01 项目里面有两个镜像

0e8bf96dc26c4d559045c580d5c10113.png


5、维护管理Harbor

5.1 通过 Harbor Web 创建项目

在 Harbor 仓库中,任何镜像在被 push 到 regsitry 之前都必须有一个自己所属的项目。

单击“+项目”,填写项目名称,项目级别若设置为"私有",则不勾选。如果设置为公共仓库,则所有人对此项目下的镜像拥有读权限,命令行中不需要执行"Docker login"即可下载镜像,镜像操作与 Docker Hub 一致。


5.2 创建 Harbor 用户

(1)创建用户并分配权限

在 Web 管理界面中单击系统管理 -> 用户管理 -> +用户,

填写用户名为“xc”,邮箱为“xcdyx12138@163.com”,全名为“xiongchen”,密码为“Abc123456”,注释为“管理员”(可省略)。

附:用户创建成功后,单击左侧“…”按钮可将上述创建的用户设置为管理员角色或进行删除操作,本例不作任何设置。

e71fe07bf2714e50a32f745d86740dcc.png

7561d2ce36444c0a90b00e0c2dc20f75.png



(2)添加项目成员

单击项目 -> myproject-01-> 成员 -> + 成员,填写上述创建的用户 xc 并分配角色为“开发人员”。

附:此时单击左侧“…”按钮仍然可对成员角色进行变更或者删除操作

6afc2880c35a49c0b96381429275ded2.png


c788564490c24c8daa4f38cfa65caa53.png


(3)在客户端上使用普通账户操作镜像

//删除上述打标签的本地镜像
docker rmi 192.168.147.105/myproject-01/cirros:v2
//先退出当前用户,然后使用上述创建的账户 xc 登录
docker logout 192.168.147.105
docker login 192.168.147.105
docker login -u xc -p Abc123456 http://192.168.147.105
//下载和上传镜像进行测试
docker pull 192.168.147.105/myproject-01/cirros:v2
docker tag cirros:latest 192.168.147.105/myproject-01/cirros:v3
docker push 192.168.147.105/myproject-01/cirros:v3

0f69e87c8a5e44e9b6f2a79b6f6dfc8c.png

90cad64a6fc54037a1b80c04c509fd20.png


5.3 查看日志

Web 界面日志,操作日志按时间顺序记录用户相关操作

b17e0044ccb74a57ab0e22c281a26f27.png


5.4 修改 Harbor.cfg 配置文件

要更改 Harbor的配置文件中的可选参数时,请先停止现有的 Harbor实例并更新 Harbor.cfg;然后运行 prepare 脚本来填充配置; 最后重新创建并启动 Harbor 的实例。


使用 docker-compose 管理 Harbor 时,必须在与 docker-compose.yml 相同的目录中运行。


cd /usr/local/harbor
docker-compose down -v

29d2c73c7f9a4007a89a0d653e10740e.png


vim harbor.cfg      #只能修改可选参数
./prepare
docker-compose up -d
//如果有以下报错,需要开启防火墙 firewalld 服务解决
Creating network "harbor_harbor" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-b53c314f45e8 -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))
systemctl restart firewalld.service
docker-compose up -d

0bf73358d8a546c499340ce54304b99b.png


5.5 移除 Harbor 服务容器同时保留镜像数据/数据库,并进行迁移

在Harbor服务器上操作


(1)移除 Harbor 服务容器

cd /usr/local/harbor
docker-compose down -v

4db933425cee481083905b7ae060aeea.png

(2)把项目中的镜像数据进行打包

//持久数据,如镜像,数据库等在宿主机的/data/目录下,日志在宿主机的/var/log/Harbor/目录下
ls /data/registry/docker/registry/v2/repositories/myproject-01
cd /data/registry/docker/registry/v2/repositories/myproject-01
tar zcvf registry01.tar.gz ./*

5702635fabaf436dbbb20844e06ef614.png


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

cd /usr/local/harbor
docker-compose down -v
rm -r /data/database
rm -r /data/registry


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
打赏
0
0
0
0
11
分享
相关文章
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
224 91
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
Stirling-PDF 是一款基于 Docker 的本地化 PDF 编辑工具,支持 50 多种 PDF 操作,包括合并、拆分、转换、压缩等,同时提供多语言支持和企业级功能,满足个人和企业用户的多样化需求。
72 6
Stirling-PDF:51.4K Star!用Docker部署私有PDF工作站,支持50多种PDF操作,从此告别在线工具
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
46 19
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
48 1
Docker部署Harbor
配合Kubernetes集群日常的发布,jenkins构建镜像推送到私有镜像仓库,这里选择部署harbor
482 0
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
283 93
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
65 23
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
342 15
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
340 78
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
215 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结

热门文章

最新文章