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日志并进行多维度分析。
目录
相关文章
|
21天前
|
Java 应用服务中间件 Docker
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
将基于 Spring 的 WAR 应用程序部署到 Docker:详尽指南
24 2
|
27天前
|
Java Linux Docker
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
41 3
|
1月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
1月前
|
持续交付 开发者 Docker
掌握Docker容器化技术,加速软件开发与部署
掌握Docker容器化技术,加速软件开发与部署
51 0
|
13天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
146 77
|
22天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
15天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
59 3
|
22天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
54 7
|
22天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
30 5